gpt4 book ai didi

java - 无重复的随机数生成器

转载 作者:行者123 更新时间:2023-11-29 03:12:37 24 4
gpt4 key购买 nike

我正在尝试编写一段代码,其中将生成一个随机数并将其保存在一个集合中,因此下次生成另一个随机数时,我可以检查这个新数字是否已经在列表中。

此方法的要点是生成一个 1 到 118 之间的数字,不允许重复数字。

Random rand = new Random();
randomNum2 = rand.nextInt(118) + 1;
if (!generated.contains(randomNum2))
{
String strTemp = "whiteElements\\"+String.valueOf(randomNum2)+".JPG";
btnPuzzlePiece2.setIcon(new ImageIcon(strTemp));
generated.add(randomNum2);
btnPuzzlePiece2.repaint();
}
else
setPicForBtnGame1();

但是问题出在这段代码中,因为程序继续生成数字 获得正确随机数的可能性(在不重复的范围内)想象一下在运行该方法 110 次之后......该方法生成一个随机数的可能性有效的随机数减少到不到 1%...这使程序有可能永远不会拥有 1-118 的数字列表,并且还会浪费太多进程。

那么我怎样才能正确地写这个呢?p.s 我想制作 118 个对象并将它们保存在一个集合中,然后生成一个随机对象,然后从列表中删除该对象,这样下一个元素就没有机会被复制。

请帮帮我...

最佳答案

创建一个 List,并用您范围内的元素填充它。然后 shuffle() 列表,顺序就是你的随机数。也就是说,第 0 个元素是您的第一个随机数,第 1 个元素是您的第二个随机数,依此类推。

关于java - 无重复的随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483078/

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