java实现矩阵快速幂算法

本文介绍了如何使用Java实现矩阵快速幂算法,作者在整理过程中发现网上相关资源多为C/C++实现,遂决定分享自己的Java版本。虽然作者不精通此算法,但旨在学习和交流,欢迎指出错误。文章重点在于核心代码,利用数组表示矩阵,并讨论了Java中与C不同的‘与’运算和移位运算的应用,鼓励读者深入思考。
摘要由CSDN通过智能技术生成

在网上看到了很多关于矩阵快速幂算法的文章,但好像没有找到完整代码的   有也不是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][
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值