gpt4 book ai didi

java - 生成 0 到 1000 之间的唯一随机数

转载 作者:行者123 更新时间:2023-12-01 16:34:36 24 4
gpt4 key购买 nike

Possible Duplicate:
Generating Unique Random Numbers in Java

如何生成 0 到 1000 之间的随机数,并继续将生成的 0 到 1000 之间的唯一随机数传递给特定方法。因此,我生成了 0 到 1000 之间的数字,并在列表中插入了 0 到 1000 之间的唯一随机数,以便我们可以比较我们生成的随机数是否已经存在于列表中。如果存在则再次生成。但不知怎的,我相信下面的代码有时会失败。

public class Testing4 {
private static List<Integer> randomNumber;
private static Random r = new Random();
private static int rand;
private static int endRange = 1000;

public static void main(String args[]) throws IOException {

randomNumber = new ArrayList<Integer>();

for (int i = 1; i<= endRange; i++) {
rand = r.nextInt(endRange);

if(randomNumber.contains(rand)) {
rand = r.nextInt(endRange);
} else {
randomNumber.add(rand);
}

// Pass the unique random number between 0 and 1000 to this method
randomNumberMethod(rand);

}
}
}

最佳答案

您实际上是按随机顺序生成 0-1000 之间的数字列表。您可以通过以下方式更有效地实现这一目标:

public class Testing4 {
private static List<Integer> randomNumber;
private static int endRange = 1000;

public static void main(String args[]) throws IOException {

randomNumber = new ArrayList<Integer>(endRange);

for (int i = 0; i<= endRange; i++) {
randomNumber.add(i);
}

Collections.shuffle(randomNumber);

for (int i = 0; i<= endRange; i++) {
// Pass the unique random number between 0 and 1000 to this method
randomNumberMethod(randomNumber.get(i));
}
}
}

想想当你达到 999 时会发生什么 - 每次循环时你将有 999 分之一的机会“猜测”剩余的可用数字。

关于java - 生成 0 到 1000 之间的唯一随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com