是否可以在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