簡體   English   中英

如何生成兩個隨機數(不重復)?

[英]How can I generate two random numbers(not repeated)?

我想在Java中生成0..99范圍內的兩個數字,並且不必重復。 我在下面嘗試了代碼,但對我不起作用。

    int number1 = randomGenerator.nextInt(100);
    int number2 = randomGenerator.nextInt(100);

    if(number1 == number2){
        while (number1 != number2){
            number2 = randomGenerator.nextInt(100);
        }
    }

如果number1number2相等,則它們將相等。 只需更改您的while循環:

int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(100);

while(number1 == number2){
    number2 = randomGenerator.nextInt(100);
}

這是行不通的,因為您永遠不會進入循環,因為條件是錯誤的。 在循環中,您需要== ,而不是!= 您也可以刪除if

int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(100);

while (number1 == number2){
    number2 = randomGenerator.nextInt(100);
}
int number1 = randomGenerator.nextInt(100);
int number2 = randomGenerator.nextInt(99);
if(number2 >= number1) {
  ++number2;
}

還可以在生成隨機索引而不是集合中給定的任何索引時檢查有關它的討論

如果它們都必須唯一,則應將結果添加到列表中。 然后,您可以將當前隨機數與過去的每個結果進行比較。

    Random random = new Random();
    int number1 = random.nextInt(100);
    int number2 = random.nextInt(100);
    List<Integer> randomsList = new ArrayList<Integer>();

    while (randomsList.contains(number1)){
        number1 = random.nextInt(100);
    }
    randomsList.add(number1);

    while (randomsList.contains(number2)){
        number2 = random.nextInt(100);
    }
    randomsList.add(number2);

暫無
暫無

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

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