簡體   English   中英

創建對稱的二維數組

[英]Creating a symmetrical 2D array

我一直在思考一些必須非常簡單的事情,因為我沒有看到它在任何地方都可以回答(或者我很不擅長搜索)。

我想創建一個對稱的2D數組,填充從1到100(含1和100)之間的隨機數...這是到目前為止的結果

int n = 3; int rangeOfWeights = 100;

    double[][] array = new double[n][n];
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            array[i][j] = rand.nextInt((rangeOfWeights)+1);         
        }
    }

目前,結果如下:

44 45 32 
9 31 53 
25 48 74 

實際上我想要的結果是:

0 34 32
34 0 23
32 23 0

如您所定義,您嘗試創建2D數組,其中array[i][j] == array[j][i] 您可以使用一對嵌套循環,其中一個循環迭代到數組的大小,另一個迭代到外部數組的計數器,並在每次迭代中設置兩個對稱值的值:

double[][] array = new double[n][n];
for(int i = 0; i < n; i++) {
    for(int j = 0; j < i; j++) {
        int value = rand.nextInt((rangeOfWeights)+1);         
        array[i][j] = value;
        array[j][i] = value;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM