是否可以在Java中执行此操作?我想生成一个随机数,例如给定一个范围,例如:在1到70之间 - 每次生成随机数时,它应该从生成结果中排除。
所以[1,70]兰特= 56(现在56不应当被认为在下一次)
[1,70] = 63(现在56,63应排除代直到我的代码运行)随机数生成和排除生成的数字
回答
这相当于将包含[1..70]的数组进行混洗,然后逐个处理它们。在Google上查找“洗牌算法”。这里有一个链接http://www.vogella.de/articles/JavaAlgorithmsShuffle/article.html
或者更好地使用JDK附带的shuffle算法。 http://download.oracle.com/javase/6/docs/api/java/util/Collections.html#shuffle(java.util.List) – 2011-04-28 03:47:43
是的,我忘记了那里。 – 2011-04-28 03:48:46
我问同样的问题在这里:How can I generate a random number within a range but exclude some?
一般的策略是一样的东西填充阵列70个值。按照上面的链接,删除您随机生成的值。
您可以将范围填充到数组中并随机播放数组。这对于非常大的范围来说效率很低
另一个微不足道的选择是使用HashMaps来跟踪随机数。 这是一种快速和肮脏。
HashMap<Integer,Integer> hmRandomNum = new HashMap<Integer,Integer>();
Integer a = < generate random number>
if(hmRandomNum.get(a) == null)
{
hmRandomNum.put(a,a);
}
else
{
// ignore this random number. this was already selected and present in the hashmap.
}
//Iterate depending on how many numbers you want.
- 1. 排序随机生成的数字
- 2. Rand();排除和已经随机生成的数字..?
- 3. 随机生成数字?
- 4. 随机数生成
- 5. 生成随机数
- 6. 生成随机数
- 7. 生成随机数
- 8. 生成随机数
- 9. 随机数生成
- 10. 生成随机数:计算随机生成的x次数
- 11. 随机生成器字母和整数
- 12. 随机数生成器帮助不生成随机数 - C
- 13. 动态排除随机生成序列中的一些数字
- 14. 生成一个排除特定字符的随机数
- 15. 生成随机数onclick并计算生成的数字?
- 16. 随机数生成机制
- 17. 以排序顺序生成随机数
- 18. 生成随机数的Array
- 19. Cuda的随机数生成
- 20. 随机数的生成
- 21. 从给定数字生成随机数
- 22. 在数组中生成随机数字
- 23. 用随机生成的数字和排序播种阵列
- 24. 通过随机字符生成生成随机名字太慢
- 25. 生成唯一的随机数字JAVA
- 26. 生成随机字母的函数
- 27. C++随机生成的数字
- 28. 生成强的伪随机数字
- 29. 在X和Y之间生成一个随机数,排除某些数字
- 30. 伪随机数生成
复制到一个问题:** [Java的创建随机数,没有重复(http://stackoverflow.com/questions/4040001/java-creating-random-numbers-with-no-duplicates)** – lschin 2011-04-28 03:42:39