gpt4 book ai didi

java - Android 中的随机数错误

转载 作者:行者123 更新时间:2023-12-01 06:34:53 25 4
gpt4 key购买 nike

TreeSet myNumbers = new TreeSet();
Random randGen = new Random();

for (int i = 1; i <= 16; i++) {
// number generation here
int randNum = randGen.nextInt(16 - 1) + 1;
for (;;) {
if (myNumbers.add(randNum))
break;
else
randNum = randGen.nextInt();

}
Toast.makeText(getApplicationContext(), "" + randNum, 100).show();
}

我想生成 1 到 16 之间的随机数,并且相同的数字不应重复。

上面的代码给我的输出如下:

2, 5, 7, 9, 1, 4, 10.4109446, -448831, 98824724, 11, 13, ...

我不知道为什么它给我的随机数不在 1-16 范围内,请帮助我。

最佳答案

您仅生成一个 1-15 范围内的数字。然后,您只需使用 nextInt 即可生成后续数字:

if (myNumbers.add(randNum))
break;
else
randNum = randGen.nextInt();

应该是:

if (myNumbers.add(randNum))
break;
else
randNum = randGen.nextInt(16) + 1;

...并修复对 nextInt 的初始调用以删除“-1”。 (您不需要 16 - 1,如 Josh 的回答中所述。)

关于java - Android 中的随机数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22563558/

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