文档章节

矩阵乘法和矩阵的幂

 笨拙的小Q
发布于 2016/08/13 21:56
字数 325
阅读 34
收藏 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;
	}

 

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
今天
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
今天
14
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部