我正在尝试创建一个方法,该方法创建一个随机生成的2D symetrix矩阵,它的大小为n。随机数也必须在0到100之间。
到目前为止我得到了什么;
public static void randomArray(int n)
{
Random random = new Random();
double[][] array = new double[n][n];
for( int i = 0 ; i < array.length ; i++ ) {
for ( int j = 0 ; j < array[i].length ; j++ ) {
array[i][j] = random.nextInt(101);
}
}
for( double[] a : array ) {
System.out.println( Arrays.toString( a ));
}
}//end of randomArray
这成功生成了一个带有随机数的二维数组,但矩阵不是对称的,我对如何使它成为symetrix感到困惑。
答案 0 :(得分:1)
对于您分配给array[i][j]
的随机值,您还要将其指定给array[j][i]
,当然除了矩阵对角线。
此外,您将内循环停止条件更改为j<=i
,因此您不会迭代矩阵的另一侧。
for (int i = 0; i < array.length; i++) {
for (int j = 0; j <= i; j++) {
int x = random.nextInt(101);
array[i][j] = x;
if (i != j) {
array[j][i] = x;
}
}
}