gpt4 book ai didi

java - 如何从彼此不关注的数字池中生成一个随机数

转载 作者:搜寻专家 更新时间:2023-11-01 02:03:01 24 4
gpt4 key购买 nike

我有一组数字(例如 {3,6,7,11,20}),我需要每个数字在我的集合中出现 x 次。

我的解决方案是创建一个由两个整数 (num,numOfAppearnces) 组成的类,我们称之为“元素”。

我在arrayList中创建了一个“元素”池,然后生成一个0到list.size之间的随机数,并得到存储在随机索引中的数。当 numOfAppearances 减少到 0 时,我从列表中删除了这个元素。

我的问题是,是否有任何其他优雅的解决方案来生成随机数,而不是从一个范围内生成?

最佳答案

是的,有更短的方法可以实现您所描述的。

例如:

Integer[] arr = {3,6,7,11,20};
List<Integer> shuffled = new ArrayList<>();
for (Integer i : arr)
shuffled.addAll (Collections.nCopies(x,i)); // add i to your List x times
Collections.shuffle(shuffled); // shuffle the List to get random order

或者(如果您不想使用 Collections.nCopies(x,i)):

Integer[] arr = {3,6,7,11,20};
List<Integer> shuffled = new ArrayList<>();
for (int j = 0; j < x; j++)
for (Integer i : arr)
shuffled.add (i);
Collections.shuffle(shuffled); // shuffle the List to get random order

关于java - 如何从彼此不关注的数字池中生成一个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138672/

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