题目描述
矩阵乘法的运算量与矩阵乘法的顺序强相关。
例如:
A是一个50×10的矩阵,B是10×20的矩阵,C是20×5的矩阵
计算A*B*C有两种顺序:((AB)C)或者(A(BC)),前者需要计算15000次乘法,后者只需要3500次。
编写程序计算不同的计算顺序需要进行的乘法次数
输入描述:
输入多行,先输入要计算乘法的矩阵个数n,每个矩阵的行数,列数,总共2n的数,最后输入要计算的法则输出描述:
输出需要进行的乘法次数示例1
输入
3
50 10
10 20
20 5
(A(BC))
输出
3500
实现代码
- 思路
①利用栈的性质,FILO
②A(m,n)* B(n,k)两个矩阵得到m*k的矩阵,运算次数为m*n*k,C(q,m) *(A(m,n)* B(n,k)),则运算次数为q*m*k+m*n*k,可得到出两个矩阵的运算次数