gpt4 book ai didi

java - Java中如何用一个循环来实现两个矩阵相乘?

转载 作者:行者123 更新时间:2023-12-01 11:07:28 24 4
gpt4 key购买 nike

这是我发现的使用 3 个“for”循环的传统方法。

    public int [][] multiMatrices(int[][] m1, int [][] m2){

int fil_m1 = m1.length;
int col_m1 = m1[0].length;

// int fil_m2 = m2.length; //NOT NECESSARY
int col_m2 = m2[0].length;

int [][] end = new int [fil_m1][col_m2];

for (int x=0; x < end.length; x++) {
for (int y=0; y < end[x].length; y++) {
for (int z=0; z<col_m1; z++) {
end[x][y] += m1[x][z]*m2[z][y];
}
}
}
return end;
}

我现在正在尝试获得相同的结果,但目标是仅使用一个“for”。为了练习,我不能使用任何外部库。我发现了一种叫做 Strassen 算法的东西,它可能有帮助,也可能没有帮助。

任何帮助将不胜感激。

最佳答案

 for (int x=0,y=0,z=0; x < end.length ; z++) {

if(z==col_m1) {z=0;y++;}
if(y==end[x].length){y=0;x++;}
end[x][y] += m1[x][z]*m2[z][y];
}
}

关于java - Java中如何用一个循环来实现两个矩阵相乘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32797328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com