M mPow(M m, int k)//M为struct M,里面有一个a[6][6]
{
M ans;//初始化为单元矩阵(对角线为1,其余为0)
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
if (i == j) ans.a[i][j] = 1;
else ans.a[i][j] = 0;
}
}
while (k > 0) {
if (k & 1) ans = Multiply(ans, m);
k >>= 1;
m = Multiply(m, m);
}
return ans;
}
矩阵快速幂
最新推荐文章于 2023-06-22 16:37:05 发布