文档章节

矩阵乘法和矩阵的幂

 笨拙的小Q
发布于 2016/08/13 21:56
字数 325
阅读 33
收藏 1

1、通常用二维数组表示一个矩阵。求矩阵M和矩阵N相乘,要求M的列和N的行相等,即矩阵M的列数等于

M[0].length;矩阵N的行数等于N.length;即M[0].length=N.length时,两个矩阵才能进行乘法运算,否则不能相乘,得到的结果是M.length行N[0].length列的。下面是求两个矩阵相乘的代码:

public class Test {
	public static void main(String[] args) {
		int[][]m = {{2,2},{2,2}};
		int[][]n = {{2,2,2},{3,3,3}};
		int[][]res = mutilMatrix(m, n);
		for(int i=0;i<res.length;i++){
			for(int j=0;j<res[0].length;j++){
				System.out.print(res[i][j]+" ");
			}
			System.out.println();
		}
	}
	
	public static int[][] mutilMatrix(int[][]m,int[][]n){//矩阵乘法。
		int[][]res = new int[m.length][n[0].length];
		for(int i=0;i<m.length;i++){
			for(int j=0;j<n[0].length;j++){
				for(int k=0;k<n.length;k++){
					res[i][j]+=m[i][k]*n[k][j];
				}
			}
		}
		return res;
	}
}
结果为:
10 10 10 
10 10 10 

2、矩阵M的P次幂

public static int[][] matrixPower(int[][]m,int p){
		int[][]res = new int[m.length][m[0].length];
		//先将结果矩阵设为单位阵,一个矩阵乘以单位阵等于这个矩阵本身。
		for(int i=0;i<m.length;i++){
				res[i][i] = 1;
		}
		int[][]temp = m;
		while(p!=0){
			if(p==1){
				res = mutilMatrix(res, temp);
				p = 0;
			}
			temp = mutilMatrix(temp, temp);
			p = p/2;
		}
		/*for(;p!=0;p>>=1){
			if((p&1)!=0){
				res = mutilMatrix(res, temp);
			}
			temp = mutilMatrix(temp, temp);
		}*/
		return res;
	}

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 57
码字总数 27842
作品 0
南京
码农眼中的数学之~矩阵专栏(附Numpy讲解)

2.矩阵专栏¶ 吐槽一下:矩阵本身不难,但是矩阵的写作太蛋疼了 还好有,不然真的崩溃了... 有没有一个集成了很多常用以及或者含的在线编辑器? 代码裤子:https://github.com/lotapp/BaseC...

鲲逸鹏
07/15
0
0
bzoj2510 弱题 【期望dp+循环矩阵快速幂】

解题思路: 很容易想到每一轮的dp方程: 考虑矩阵快速幂,可以 求解,但仍会TLE。 注意到转移矩阵是一个循环矩阵,即每一行都是上一行平移一格得到(列也是如此),而循环矩阵的性质有: 所以我...

cdsszjj
01/05
0
0
【译】RNN的正交初始化insight

引言 rnn网络在使用过程中最受影响的问题就是其梯度消失和梯度爆炸,同时现在又很多方法来应对这两个缺陷,比如通过梯度裁剪来解决梯度爆炸问题,以及使用更复杂的单元结构像GRU和LSTM来缓解...

柳枫
2017/09/03
0
0
矩阵快速幂之矩阵构造思想(转)

原文链接 博主写的很好 (转给师弟师妹们看~) 快速幂的思想: 假设我们要求a^b,最朴素的方法就是不断地乘a,乘b次,复杂度O(b)。 如果b很大,10^9,就需要用快速幂的思想。 例:a=3,b=100...

akatsuki__itachi
05/24
0
0
BASIC-17 基础练习 矩阵乘法

  例如:   A =   1 2   3 4   A的2次幂   7 10   15 22   接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值 1 2 3 4 15 22 思路解析: 1.由题意可知,这是一个 ...

xnh_565175944
05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
3
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部