gpt4 book ai didi

java - 在 Java 中创建唯一的随机数

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

我正在制作一个随机数(有点像猜谜游戏)并想出了 ff.生成 10 个一位或两位数字的代码(1 或 10 最多 40):

public void generate()
{
for(int i=0; i<=1; i++)
{
for(int l=0; l<10; l++)
{
Random rdm=new Random();
arr[l] = rdm.nextInt(range)+1;

}
}
}

但是,此代码仅满足生成 10 个随机一位或两位数字的需求。我需要让这个程序生成唯一的随机数。我怎样才能做到这一点?

抱歉更新晚了...我想用这个程序做的是,如果数组包含重复项,则该重复项将被替换为唯一的...

==============已解决================

新问题:

HashSet set=new HashSet();
Random random=new Random();

while(set.Size()<10)
{
set.add(random.nextInt(range)+1);
}

lbtest.setText(set.toString());
bgen.setEnabled(false);
gametext.setText("");

根据ggrigery的要求:

这是引用 ggrigery 的建议更新的代码。

最佳答案

另一种选择是使用随机播放。

List<Integer> all = new ArrayList<>();
for(int i=1;i<=range;i++) all.add(i);
Collections.shuffle(all);
List<Integer> selected = all.subList(0, 10);

如果您选择每个元素,并且丢弃重复项,则可能需要很长时间才能找到最后一个随机值。无论您选择一个元素还是所有元素,此方法都需要相同的时间。

关于java - 在 Java 中创建唯一的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9685545/

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