gpt4 book ai didi

java - Java 中的特殊对角矩阵

转载 作者:行者123 更新时间:2023-12-04 20:50:36 26 4
gpt4 key购买 nike

有谁知道如何在 Java 中构造以下矩阵?

matrix

我可以看到转置模式,但我可能走错了路。这就是我到目前为止所得到的...不要笑 :-)

import java.io.*;

public class Diagonal
{
public static void main(String[] args)throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(isr);

int dim;

do
{
System.out.print("Dimension: ");
dim = Integer.parseInt(in.readLine());
}while(dim<=0);

int[][] matrix = new int[dim][dim];

for(int i=0;i<matrix.length;i++)
{
for(int j=0;j<matrix[i].length;j++)
{
matrix[i][j] = j+1;
}
}

//Transpose
int transpose[][] = matrix;

for(int i=0;i<dim;i++)
{
for(int j=0;j<dim;j++)
{
transpose[j][i] = matrix[i][j];
}
}

//print transpose
for(int i=0;i<transpose.length;i++)
{
for(int j=0;j<transpose[i].length;j++)
{
System.out.print(transpose[i][j]);
}
System.out.println("");
}
}
}

我不确定,但我认为它叫做托普利茨矩阵...

谢谢。

最佳答案

请注意:m[i][j] = Math.abs(i - j) + 1。一旦你看到了这一点,创建矩阵就相当简单了:

private static int[][] createMatrix(int n) {
int[][] m = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
m[i][j] = Math.abs(i - j) + 1;
}
}
return m;
}

你可以尝试一下:

public static void main(String[] args) {
for (int[] row : createMatrix(8)) {
System.out.println(Arrays.toString(row));
}
}

打印:

[1, 2, 3, 4, 5, 6, 7, 8]
[2, 1, 2, 3, 4, 5, 6, 7]
[3, 2, 1, 2, 3, 4, 5, 6]
[4, 3, 2, 1, 2, 3, 4, 5]
[5, 4, 3, 2, 1, 2, 3, 4]
[6, 5, 4, 3, 2, 1, 2, 3]
[7, 6, 5, 4, 3, 2, 1, 2]
[8, 7, 6, 5, 4, 3, 2, 1]

关于java - Java 中的特殊对角矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23846754/

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