文档章节

矩阵乘法和矩阵的幂

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

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu16.04下安装docker

[TOC] 本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队的理想选择。 1. 开始安装 1.1 由于...

豫华商
26分钟前
3
0
使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥。哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方...

dragon_tech
38分钟前
1
0
day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
43分钟前
8
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 强迫症患者表示不能接受 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN......

taadis
47分钟前
2
0
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
350
6

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部