gpt4 book ai didi

Java - 生成特定数字的随机范围而不重复这些数字 - 如何?

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

听起来很简单......但我一直在努力解决这个问题,试图找到一个和所有的解决方案。

对于一个数字范围,比如说1-12,我想在这个范围内生成一个随机序列,包括112

不过我不想要重复的数字

所以我想要这样的东西 - 3,1,8,6,5,4 ..等等,从 1-12 的每个数字。

然后我想将这些随机数放入一个 Array 中,并使用该数组“随机”选择并在 jsp 页面上显示一些项目(例如从数据库中提取的库存)。

到目前为止,我所尝试的问题是生成了很多重复数字...或者,不是所有数字是选择。

这个问题有简单的解决方案吗?


编辑

使用 Collectionsshuffle() 方法测试#1 -

ArrayList<Integer> list = new ArrayList<Integer>(10);
for(int i = 0; i < 10; i++)
{
list.add(i);
}
Collections.shuffle(list);

String[] randomNumbers = (String[])list.toArray();

for(int i = 0; i < 10; i++)
{
out.print(randomNumbers[i]+"<br>");
}

结果是一个有重复值的序列-
选择 = 3
选择 = 8
选择 = 7
选择 = 5
选择 = 1
选择 = 4
选择 = 6
选择 = 4
选择 = 7
选择 = 12

测试 #2 - 使用随机数学课

int max = 12;
int min = 1;

int randomNumber = 0;

String str_randomNumber = "";

for(int i=0; i<10; i++) {
//int choice = 1 + Math.abs(rand.nextInt(11));
int choice = min + (int)(Math.random() * ((max - min) + 1));

out.print("chose = "+choice+"<br>");
}

结果就像使用 Collections.shuffle() 一样。

最佳答案

您可以用从 1 到 12 的所有值填充一个数组,然后将它们打乱顺序(参见例如 Why does Collections.shuffle() fail for my array?)

关于Java - 生成特定数字的随机范围而不重复这些数字 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224877/

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