Description
:
设A是一个N*N的矩阵,很多时候人们需要计算一个矩阵的n次幂,当n足够大时,计算量会变得很大,时间会变得很长,编程快速计算A^n。
Input:
matirx A
Output:
matrix B=A^n。
算法描述:
设A
是一个
N*N
的矩阵,输入
n,
该算法可以实现快速计算
A^n
。
首先需要实现一个计算矩阵乘法的函数,该函数在算法中为MAT_mul(A,B)
表示A*B 。
可以采用以下方法重新组织算法:
A
^
n
=
A
^((
n
/2) * 2)
A
^
n
== (
A
^(
n
/2))^2
算法 MAT_power(A, n)
1. if n = 1
2. return A;
3. end if
4. Temp = A^n/2; //MAT_power(A,n/2)
5. Temp2 = Temp*Temp ;// MAT_mul(Temp,Temp)
6. if n % 2 = 0 // n是偶数
7. return Temp2;
8. end if
9. esle
10. return temp2*A;
11. end
654

被折叠的 条评论
为什么被折叠?



