計算矩陣運算的乘法次數

2021-06-22 03:39:54 字數 1287 閱讀 1128

//描述:

//矩陣乘法的運算量與矩陣乘法的順序強相關。

////例如:

//a是乙個50×10的矩陣,b是10×20的矩陣,c是20×5的矩陣

// //計算a*b*c有兩種順序:((ab)c)或者(a(bc)),前者需要計算15000次乘法,後者只需要3500次。

// //編寫程式計算不同的計算順序需要進行的乘法次數

//知識點:

字串 

內部整理 

//練習階段:

中級 //執行時間限制:

10sec

//記憶體限制:

128mbyte

//輸入:

//輸入多行,先輸入要計算乘法的矩陣個數n,每個矩陣的行數,列數,總共2n的數,最後輸入要計算的法則

//3       //矩陣個數n 

//50 10   //矩陣a的行數50,列數10

//10 20   //矩陣b的行數10,列數20

//20 5    //矩陣c的行數20,列數5

//(a(bc)) //矩陣從a開始命名,a、b、c、d...以此類推,通過括號表示運算順序

// //輸出:

//輸出需要進行的乘法次數

// //樣例輸入:

//3//50 10

//10 20

//20 5

//(a(bc))

//樣例輸出:

//3500

#include #include #include int cishu=0;

struct juzhen_info;

static int index=0;

struct juzhen_info chengfa_cishu(int n, struct juzhen_info *juzhen, char* exep)

else

//chengfa_cishu(n, juzhen, exep);

} else if(*(exep+index)==')')

else if(*(exep+index)>64&&*(exep+index)<65+n)

else

} }}int main(void)

scanf("%s", exep);

ptr = strupr(exep);

chengfa_cishu(n, juzhen_temp, ptr);

printf("%d",cishu);

system("pause");

return 0;

}

矩陣乘法次數的計算過程

矩陣乘法次數的計算 以兩個矩陣相乘為例,a1xa2,a1和a2為兩個矩陣,假設a1的行列數是pxq,a2的行列數是qxr。那麼對於a1xa2而言,我們需要分別執行pxr次對應a1的行元素乘以a2的列元素,根據線性代數知識,可以得到一共需要執行pxqxr次乘法。對於兩個矩陣相乘,一旦矩陣的大小確定下來...

矩陣的運算的乘法次數(棧的模擬應用)

給定各個矩陣的大小,再給定他們的乙個有著確定運算順序的算式,判斷他們能否正確地進行運算,如果可以進行正確的運算,求算出所需進行的乘法的次數,運算規則為線性代數裡面的矩陣乘法法則。源 include include includeusing namespace std int main while c...

矩陣乘法的計算

這裡先說一下整數的資料範圍 int 32位 2147483648 2147483647。long long 64位 9223372036854775807 unsigned long long 64位 18446744073709551615 一般在hash的時候用,溢位就相當於取模了 int128...