假設我有一個像1,3,7,9這樣的數組的數組/向量,那麼我需要從這個列表中隨機猜出一個數字。在Java中使用Random類似乎不可能做到這一點。任何人都可以幫助我說出做這種事的方法。我必須更改用於生成隨機數字的數字列表。我正試圖實施一項戰略,自動將戰艦遊戲作爲一項任務。請幫助我做到這一點?如何從給定的數字列表中用Java生成一個隨機數
回答
把號碼一個ArrayList和使用Collections.shuffle(arrayList);
如果你只是想只能選擇一個隨機數,或想重返選擇多個隨機數(即允許選擇相同數量的多次的可能性),就可以生成一個隨機指數:
List<Integer> lst = ....;
int index = new Random().nextInt(lst.size());
Integer randomeValue = lst.get(index);
您可以使用數組,而不是爲好。這需要每個選擇O(1)
。
如果您需要從列表中選擇多個不同的隨機數,然後使用Collections.shuffle()
並遍歷列表將是一個更好的解決方案。對於所有查詢,這需要O(n)
。
謝謝你的迴應。這非常有用 – 2009-08-08 07:24:02
如果您需要多個隨機數,請記住重複使用相同的隨機實例,而不是每次都新建一個。 – 2009-08-08 17:38:11
我與tordek關於這一個:不洗牌似乎是一個相當重的方式來從源矢量中選擇配置數量的隨機數字?
對於如何挑選一個隨機數然後再重複n次,難道不會更快地採取msaeed的建議嗎?也許組裝你的隨機值,並繼續選擇,直到你的設置的大小足夠大...(不要忘記某些檢查邊緣條件,其中源矢量中沒有足夠的數字來提供配置的數字隨機值)
- 1. 從給定數字生成隨機數
- 2. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 3. 如何從java中的m個數字列表生成n個隨機數?
- 4. 如何從java中的數組中隨機生成一個唯一的數字
- 5. 如何從給定的一組值中生成隨機數?
- 6. 如何根據給定數字列表中的模式生成隨機數?
- 7. 如何在Java中生成一個隨機的9位數字?
- 8. 從JavaScript中的表單中生成一系列隨機數字
- 9. 生成一個隨機數得到一個隨機列表項
- 10. 如何生成分配給隨機數的隨機字母列表
- 11. 如何從給定列表中隨機生成?
- 12. 生成唯一的隨機數字JAVA
- 13. C++:如何從一個數組中生成一個隨機數
- 14. 如何從陣列生成隨機數
- 15. 如何生成隨機數列表?
- 16. 在隨機字節的給定範圍內生成隨機數
- 17. 如何從給定列表中選取一個隨機字符串? (JAVA)
- 18. 如何在java中生成隨機數
- 19. 使用math.random在java中生成一定數量的隨機數
- 20. 從c中給出數字生成隨機數字#
- 21. 生成唯一隨機數列表
- 22. 生成Java Card中兩個數字之間的隨機數字
- 23. 如何生成一個隨機數
- 24. 生成一個具有指定位數的隨機整數Java
- 25. 從列表生成一個隨機數,不包括其中一個數
- 26. 如何在java中生成100個隨機3位數字?
- 27. 如何用arc4random生成隨機數字?
- 28. 如何合計兩個隨機生成的數字? Java的
- 29. Java在兩個給定值之間生成隨機數
- 30. 在隨機生成50個隨機數中使用隨機數#
爲什麼O(1)滿足O(1)就足夠了? – Tordek 2009-08-08 03:57:17
但在我的情況下,我需要一次多個點擊。通常戰列艦遊戲一個接一個地點擊,這裏它在遊戲初始化時可以改變 – 2009-08-08 07:22:55