我正在尝试获取一个随机数列表,并将其放入队列中,而不会重复任何随机数。
int number = 40;
for (int j = 0; j<number; j++)
{
int pick = random.nextInt(number);
myQueue.add(Integer.toString(pick));
}
System.out.println("the queue size: "+myQueue.size());
Iterator it = myQueue.iterator();
while(it.hasNext()){
String iteratorValue = (String)it.next();
System.out.println("queue next value: "+iteratorValue);
}
通过上面的代码,我得到了一些随机数的重复
有人知道怎么做吗?
这个怎么样:
List<String> list = new ArrayList<String>(number);
for (int i = 0; i < number; i++)
list.add(Integer.toString(i));
Collections.shuffle(list);
myQueue.addAll(list);
在某个范围内“添加唯一的随机数”等效于将范围内的所有数字相加,然后对结果进行混排。
问题内容: 我正在尝试获取0到100之间的随机数。但是我希望它们是唯一的,而不是在序列中重复。例如,如果我有5个数字,它们应该是82,12,53,64,32而不是82,12,53,12,32(我使用了这个数字),但是它在序列中生成相同的数字。 问题答案: Add each number in the range sequentially in a list structure. Shuffle i
问题内容: 我正在开发一个需要生成一些唯一编号的应用程序,并且实际上没有预定义的限制,因此使用Java UUD生成器并且运行良好。现在,我们对生成12位唯一的随机数有了新的要求。 谁能指出我实现这一目标的一些好的方法/算法,因为我看不到UUID生成数字中的任何可能性。 提前致谢 问题答案: 通过调用生成每个数字。为了保持唯一性,您可以通过将随机数保存在集合中并检查集合中是否包含您每次生成的数字来跟
问题内容: 我想在0-500范围内创建10个随机数。但是问题是我希望这些数字是唯一的。对于2个随机数,我可以创建以下内容: 但是,如果我这样做10次,我认为它会堆叠。我之所以这样说是因为我正在尝试创建一个巨大的算法,该算法试图进行连续评估,我希望连续获取10个随机且唯一的数字。我不知道该怎么办。有什么想法或建议吗? 问题答案: 每当您使用Fisher-Yates shuffle 来使用数字时,请从
问题内容: 我正在尝试使用下面的代码来生成10位唯一的随机数。根据我的要求,我必须创建大约5000个唯一编号。这无法正常工作。它还会生成- ve数字。同样,有时生成的数字中缺少一两位数字,导致8或9个数字而不是10。 问题答案: 我认为您获得8/9位数字值和负数的原因是您要添加一个(带符号的64位值),该值可能大于的正数范围(32位值)。 该值正在溢出,处于负32位范围内或几乎缠绕到(由于是带符号
问题内容: 我创建了以下方法,以便创建唯一的随机数。(此唯一值属于树的节点): 但这并不会创建唯一的数字,并且我的列表中仍然有重复的数字。喜欢 : 问题答案: 问题是,如果它发现重复的数字,您不会在检查函数中停止for循环。循环继续进行,b可以变回true。 例如,您应该做的是:
问题内容: 我上面有一个方法,该方法应生成用户指定的随机元素数组。随机生成的整数应介于0到10之间(含0和10)。我能够生成随机整数,但是我遇到的问题是检查唯一性。我尝试检查唯一性是在上面的代码中,但是数组仍然包含整数的重复项。我做错了什么,有人可以给我提示吗? 问题答案: 您确实找到重复的值。但是,您将其替换为另一个可能重复的随机数。相反,请尝试以下操作: 但是,这种方法效率低下。我建议列出数字