beretwzl
幼苗
共回答了21个问题采纳率:100% 举报
1.直接计算:A^n=A*A^(n-1)
2.折半计算:A^(2k)=(A^k)*(A^k),A^(2k+1)=(A^k)*(A^k)*A
用递归实现算法2:
Matrix pow(Matrix A,int n) //求A^n
{
Matrix B;
if(n==1) return A;
else if(n % 2 == 0) {
B = pow(A,n/2);
return mul(B,B);
} else {
B = pow(A,n/2);
return mul(A,mul(B,B));
}
}
其中 mul(A,B)为普通矩阵乘法A*B
1年前
9