gpt4 book ai didi

java - 如何在java上生成随机唯一数字

转载 作者:行者123 更新时间:2023-12-02 10:20:31 25 4
gpt4 key购买 nike

我是 Java 新手,我正在尝试随机化游戏的不重复数字。仅当我不添加break语句时,我的代码才会生成从1到75的唯一随机数(我必须这样做才能一次只得到一个数字)。我该怎么办?编辑 -(我想知道它不断重置的原因是否是因为我多次调用该方法?我不太确定如何解决这个问题)

public static void genNumber() {
Random random = new Random();

int num;
String u;
String letter = "";
HashSet<Integer> used = new HashSet<>(75);
for (int i = 1; i <= 75; i++){
ball.add(i);
}

while(used.size() > 0) {

num = 1 + random.nextInt(75);

if (used.contains(num)){
used.remove(new Integer(num));


u = Integer.toString(num);
System.out.print(u + "\n");
break;

}
if (!used.contains(num)){
continue;
}
}

这些数字是唯一且随机的,但我一次只想要一个数字(不重复),而不是一次全部 75 个。

最佳答案

也许每次您想要一个新的随机序列(例如一副纸牌)时都会对列表进行洗牌。每个元素都保证是唯一的。

List<Integer> balls = new ArrayList<>();

for (int i = 1; i <= 75; ++i) {
balls.add(i);
}

for (;;) {
// Shuffle the list every 75 draws:

Collections.shuffle(balls);
System.out.println(Arrays.toString(balls.toArray()));

// Consume the sequence

for (Integer ball : balls) {
take(ball);
}
}

关于java - 如何在java上生成随机唯一数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54374617/

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