具有随机数Symetric矩阵的Java 2D数组

时间:2017-11-22 15:59:50

标签: java arrays matrix

我正在尝试创建一个方法,该方法创建一个随机生成的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感到困惑。

1 个答案:

答案 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;
    }
  }
}