簡體   English   中英

在Java中創建(不是真正的)整數隨機數組

[英]Creating ( not truly ) random array of integers in Java

我想編寫一個在Java中生成隨機整數數組的代碼,該數組應包含256個整數,並且整數的值介於0-512之間(可能是0-256或0-1024,但不是0-1百萬..)。 但是,每次運行此代碼時,我都應該獲得相同的隨機數組。

這就是我所擁有的:

int k = 256;

for(int t=0;t<k;t++){
    Random rn = new Random(t);
    int randomNumber = rn.nextInt();
    arrayToBeSorted[t] = randomNumber;
}

但是,這給了我以下價值:

-1155484576 -1155869325 -1154715079 -1155099828 -1157023572

我一點都不喜歡。

所以我將代碼更改為:(我將k * 2作為參數添加到nextInt方法中)

for(int t=0;t<k;t++){
    Random rn = new Random(t);
    int randomNumber = rn.nextInt(k*2);
    arrayToBeSorted[t] = randomNumber;
}

現在,這就是我得到的:

374 374 374 374 374 374 374 374 373 373 373 373 373 373 373 373 374 374 375 375 374 374 374 374 374 374 374 374 374 374 374 374 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 372 373 373 373 373 373 373 373 373 373 373 373 373 372 372 373 373 371 371 371 371 371 371 371 371 370 370 371 370 370 370 370 370 372 372 372 372 371 371 371 371 371 371 371 371 371 371 371 371 369 369 369 369 369 369 369 369 369 369 369 369 369 369 369 369 370 370 370 370 370 370 370 370 370 370 370 370 370 369 370 370 380 380 380 380 379 379 380 379 379 379 379 379 379 379 379 379 380 380 380 380 380 380 380 380 380 380 380 380 380 380 380 380 378 378 378 378 378 378 378 378 378 378 378 378 378 378 378 378 379 379 379 379 379 379 379 379 379 378 379 379 378 378 378 378 377 377 377 377 377 376 377 377 376 376 376 376 376 376 376 376 377 377 378 377 377 377 377 377 377 377 377 377 377 377 377 377 375 375 375 375 375 375 375 375 375 375 375 375 375 375 375 375 376 376 376 376 376 376 376 376 376 376 376 376 375 375 375 375

我對此不滿意的是,有很多方法可以重復進行。 所以我該怎么做?

*注意:我實際上也需要這樣做10次。 所以;

  1. 在我的代碼中,我將在所有這些計數器的頂部還有另一個計數器,該計數器的計數范圍是0到9,例如int = c;
  2. 我需要將所有這10個數組隨機化,范圍為0到1024(最大值)。

謝謝。

您可以執行以下操作:

int k = 256;
Random rn = new Random(seed); // use a single Random object, you choose a seed
                              // to get the same sequence, use the same seed

for (int t = 0; t < k; t++) {
    // Random rn = new Random(t); // commented out from your original code
                                  // you only need one Random object
    int randomNumber = rn.nextInt(256); // 256, or whatever you want the max
                                        // value to be
    arrayToBeSorted[t] = randomNumber;
}

注意:我實際上也需要十次

然后只需重復10次for循環,並使用相同的Random對象,如下所示:

int k = 256;
Random rn = new Random(seed);

for (int c = 0; c < 10; c++) {
    for (int t = 0; t < k; t++) {
        int randomNumber = rn.nextInt(256);
        someArrayOfTenArrays[c][t] = randomNumber;
    }
}

暫無
暫無

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

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