自己是个新手,研究java数据结构,看到两个n阶矩阵相乘的题目,自己就试着写了一个简单的demo,哪里有不好的地方,也希望大家多提提意见,直接上代码了:

package com.shujujiegou01;

public class JuZhenChengFa {

// 计算两个N阶矩阵相乘

public static void squareMult(int[][] a, int[][] b, int[][] c, int n) {

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

c[i][j] = 0;

for (int k = 0; k < n; k++) {

c[i][j] += a[i][k] * b[k][j];

}

}

}

}

// 打印矩阵

public static void printArray(int a[][]) {

for (int k = 0; k < a.length; k++) {

for (int l = 0; l < a[k].length; l++) {

// 打印每一个元素及其所在坐标位置

System.out.print(a[k][l] + "-" + "(" + k + "," + l + ")" + ",");

}

System.out.println();

}

}

// 矩阵行列互换

public static void swapRowCloumn(int a[][]) {

int num = a.length;

//是为了方便自己调试,才这么定义的

int e[][] = new int[num][num];

for (int k = 0; k < num; k++) {

for (int l = 0, x = a[k].length; l < x; l++) {

// 打印每一个元素及其所在坐标位置

e[k][l] = a[l][k];

System.out.print(e[k][l] + "-" + "(" + k + "," + l + ")" + ",");

}

System.out.println();

}

}

// 主函数测试

public static void main(String[] args) {

// TODO Auto-generated method stub

int a[][] = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

int b[][] = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };

int c[][] = new int[3][3];

System.out.println("矩阵A:");

printArray(a);

System.out.println("互换行和列后的A矩阵:");

swapRowCloumn(a);

// printArray(a);

System.out.println("矩阵B:");

printArray(b);

System.out.println("互换行和列后的A矩阵:");

swapRowCloumn(b);

// printArray(b);

// 调用

squareMult(a, b, c, 3);

// 打印

System.out.println("矩阵C:");

printArray(c);

// 调换过后计算的结果

System.out.println("调换行和列的矩阵C:");

swapRowCloumn(c);

}

}

附上运行结果截图:

标红的部分,个人感觉有问题,调用了行列互换方法了,按理来说应该计算c矩阵是按照行列互换后的A矩阵和B矩阵来计算的,应该直接得到红框的答案;但是计算出来发现还是根据旧的A,B矩阵的乘积来计算的。感觉哪里有问题,但是说不上来!!!

java两个矩阵相乘_java计算两个n阶矩阵相乘相关推荐

  1. java 判断日期是周末_java计算两个日期之前的天数实例(排除节假日和周末)

    如题所说,计算两个日期之前的天数,排除节假日和周末.这里天数的类型为double,因为该功能实现的是请假天数的计算,有请一上午假的为0.5天. 不够很坑的是每个日期都要查询数据库,感觉很浪费时间. 原 ...

  2. java 日期相差月数_Java 计算两个日期之间相差的月数

    /** * 计算两个日期之间相差的月数 * * @param date1 * @param date2 * @return */ public static int getMonths(Date da ...

  3. java 日期 相差的天数_JAVA计算两个日期之间相差的天数

    在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用. 调用方式: long date1 = getDateTime("20121201");//可 ...

  4. java 日期相差月数_Java计算两个日期相差的月数

    /** * 获取两个日期相差的月数 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = Calendar.getIn ...

  5. java 月份间隔_java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  6. Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和

    *8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.5(代数:两 ...

  7. 创建两个矩阵,编程实现两个矩阵相加。

    创建两个矩阵,编程实现两个矩阵相加. 把两个矩阵和矩阵相加后的结果要打印出来. 让程序随机的生成整数. 模块:就好像我们C语句中用过#include,模块就是别人写好的程序. random模块,该模块 ...

  8. 矩阵3-n阶矩阵相乘

    步骤: 1.两个矩阵的乘法 设有矩阵A33 * B33 = C33,根据矩阵乘法定律,有: c00 = a00*b00 + a01b10 + a02*b20; c01 = a00*b01 + a01b ...

  9. 用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵。

    按如下函数原型,用二维数组作为函数参数,编程计算并输出n×n阶矩阵的转置矩阵. 其中,n由用户从键盘输入.已知n值不超过10. void Transpose(int a[][N], int n); v ...

最新文章

  1. 干货丨大牛带你走向机器学习“正道”:小朋友才迷信算法,大人们更重视工程实践
  2. asyncio 并发测试
  3. C#通过COM组件操作IE浏览器(四):实用代码总结
  4. RxDownload2 文件下载太慢分析
  5. 2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组(题解)
  6. Python查找算法之 -- 列表查找和二分查找
  7. Serverless 实战 —— 快速搭建 SpringBoot 应用
  8. 如何做一个国产数据库(二)
  9. Docker生态技术链
  10. C#中将原表复制到新表
  11. 1009 说反话 (20 分)—PAT (Basic Level) Practice (中文)
  12. 精品推荐:【CKEditor】全球最优秀的网页在线文字编辑器之一
  13. c语言非标准输出电源适配器,五分钟了解设计模式(3)---适配器模式
  14. c语言freeimage库文件,FreeImage使用方法amp;FreeImage Tutorial
  15. matlab 矩阵与数比较,MATLAB 对矩阵中的数据进行大小比较
  16. 鸟什么羊什么的成语(鸟什么羊什么四字成语大全)
  17. fhq——treap
  18. Win系统蓝牙设备删除失败 - 解决方案
  19. SQL Server 数据库备份还原和数据恢复
  20. 2022-2027年中国智能电网建设光通信器件行业市场调研及未来发展趋势预测报告

热门文章

  1. 安卓开发怎么实现橡皮擦功能,但是不擦除bitmap背景色
  2. 阿里美国员工薪资曝光!工程师底薪最高超20万美元
  3. IntelliJ IDEA创建Servlet(web)
  4. Maya: 菜单 编辑NURBS 曲面圆角圆角混合工具
  5. 使用IText生成PDF文件,并记录一些遇到的问题
  6. Python 数据类型总结(数字字符串)
  7. JS数据类型(6种基本数据类型)
  8. 如何提升领导力,管理好一个团队
  9. 王者荣耀小技巧最新简单操作技巧
  10. MRO工业品企业采购系统:如何精细化采购协同管理?想要升级的工业品企业必看!