Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的矩阵乘法_Java_Multidimensional Array_Matrix Multiplication - Fatal编程技术网

Java中的矩阵乘法

Java中的矩阵乘法,java,multidimensional-array,matrix-multiplication,Java,Multidimensional Array,Matrix Multiplication,我创建了一个函数,将矩阵自身相乘,得到两个参数,一个是矩阵,另一个是intn。问题是我不知道在我的代码中应该在哪里使用n,以便它将矩阵自身乘以n次数(换句话说matrix^n)。在现阶段,它只做矩阵^2 公共静态int[][]lungimeDrumuri(int[][]array,int n){ int[][]newArray=newint[array.length][array.length]; for(int i=0;i

我创建了一个函数,将矩阵自身相乘,得到两个参数,一个是矩阵,另一个是
intn
。问题是我不知道在我的代码中应该在哪里使用
n
,以便它将矩阵自身乘以
n
次数(换句话说
matrix^n
)。在现阶段,它只做矩阵^2

公共静态int[][]lungimeDrumuri(int[][]array,int n){
int[][]newArray=newint[array.length][array.length];
for(int i=0;i
初始化
newArray
使其等于array,然后 围绕矩阵乘法添加一个循环,并在嵌套循环中使用
newArray
:按数组乘法
newArray

公共静态int[][]lungimeDrumuri(int[][]array,int n){
int[][]newArray=newint[array.length][array.length];
//添加循环以将newArray初始化为array
for(int i=0;i
添加第三个for循环,从
1
开始。您需要保持
array
不变以保持初始矩阵的值,还需要一个矩阵
newArray
来保持上一次乘法的值,以及一个临时矩阵
tmp
,该矩阵在乘法过程中仅保存值,然后复制到
newArray
。 看看下面的示例

完整代码

公共静态int[][]lungimeDrumuri(int[][]array,int n){
int[][]newArray=newint[array.length][array.length];
//在两个矩阵相乘时只保存值
int[][]tmp=newint[array.length][array.length];
//将newArray初始化为等于array
for(int i=0;i
希望有帮助

公共类MyClass{
公共静态void main(字符串参数[]){
int数组[][]=新的int[2][2];
数组[0][0]=1;
数组[0][1]=2;
数组[1][0]=3;
数组[1][1]=4;
int newArray[][]=newint[2][2];
//使用这些元素初始化数组
newArray[0][0]=1;
newArray[0][1]=0;
newArray[1][0]=0;
newArray[1][1]=1;
int n=5;
对于(int i=0;i

希望这一个能对您有所帮助。

为了清晰起见,您可以创建两种方法:第一种方法是将一个方阵相乘,第二种方法是调用第一个
n
的次数

公共静态int[][]lungimeDrumuri(int[][]array,int n){
int[]newArray=array;
对于(int i=0;i
公共静态int[][]平方矩阵乘法(int[][]数组){
int[][]newArray=newint[array.length][array.length];
for(int i=0;i