在网上看到了很多关于矩阵快速幂算法的文章,但好像没有找到完整代码的 有也不是java而是c c++的。自己整理了一下,用java把程序写了出来。
对这个也不算精通吧 也是本着学习的目的,如果有错误,欢迎指正。
原本打算建一个矩阵类的,后来想了想直接就用数组吧 其实核心代码就那几句 也是从网上查阅到的 就是 java 不像c一样 可以把int类型数据直接进行逻辑判断 好像代码中也就这点需要改动 里面涉及到了’与‘运算和移位运算 大家可以多想想 挺有意思的。
//矩阵快速幂
public class MatricQuickPower {
public static int[][] multiply(int [][]a,int[][]b){
int[][]arr=new int[a.length][b[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b[0].length;j++){
for(int k=0;k<a[0].length;k++){
arr[i][j]+=a[i][k]*b[k][j];
}
}
}
return arr;
}
public static int[][] multiplyPower(int[][]a,int n){
int[][] res=new int[a.length][a[0].length];
for(int i=0;i<res.length;i++){
for(int j=0;j<res[0].length;j++){
if(i==j)
res[i][