【发布时间】:2015-01-20 05:31:15
【问题描述】:
如何防止随机数中的重复数字。 我需要在 1 和 9 之间生成 5 个不同的数字。 我经常会得到相同的数字,例如 23334,我该如何防止呢? 任何帮助都会很棒!
int num2 = (int) Math.round((Math.random()*9) +1);
int num1 = (int) Math.round((Math.random()*9) +1);
int num5 = (int) Math.round((Math.random()*9) +1);
int num3 = (int) Math.round((Math.random()*9) +1);
int num4 = (int) Math.round((Math.random()*9) +1);
【问题讨论】:
-
添加到集合
. -
仅供参考:如果您的范围只有 1-9,那么您应该期望使用随机数。你很有可能会得到重复。
-
对于小范围的小集合,排列可能是最好的。对于大范围,您可以创建一组已选择的值并根据需要重试。对于需要有界最坏情况行为的大范围,您需要在 [1,m], [1,m-1], ... [1,m-n+1] 中选择 n 个不同的随机值,然后执行修复。