//描述:
//矩陣乘法的運算量與矩陣乘法的順序強相關。
////例如:
//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...