假設我有一個像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. 如何從java中的m個數字列表生成n個隨機數?
- 3. 如何從java中的數組中隨機生成一個唯一的數字
- 4. 生成一個隨機數得到一個隨機列表項
- 5. 生成唯一的隨機數字JAVA
- 6. C++:如何從一個數組中生成一個隨機數
- 7. 如何從陣列生成隨機數
- 8. 如何生成隨機數列表?
- 9. 在隨機字節的給定範圍內生成隨機數
- 10. 生成唯一隨機數列表
- 11. 如何生成一個隨機數
- 12. 生成一個具有指定位數的隨機整數Java
- 13. 如何在Haskell中生成一個包含給定數量的隨機數的列表?
- 14. 如何合計兩個隨機生成的數字? Java的
- 15. Java在兩個給定值之間生成隨機數
- 16. 如何使用Javascript生成多個唯一的隨機數字?
- 17. 如何在Python中生成一個「大」的隨機數字?
- 18. 如何比數組中的其他隨機數生成一個隨機數?
- 19. 從數組中隨機生成三個特定的字母
- 20. 如何從不相互關注的數字池中生成一個隨機數
- 21. 從數字列表中生成隨機值
- 22. 如何在Android Java應用程序中隨機生成數字?
- 23. 如何從短隨機數生成更長的隨機數?
- 24. 生成隨機數序列與在Java
- 25. SIPp - 如何在SIPp場景中生成一個隨機數字?
- 26. 如何在JSON字段中生成一個隨機數
- 27. 如何在8086程序集中生成一個隨機數字?
- 28. 如何在Elixir中生成一個隨機數字?
- 29. 如何從給定範圍生成固定長度值的隨機列表?
- 30. 使用給定的隨機生成器函數從1到7生成隨機數
爲什麼O(1)滿足O(1)就足夠了? – Tordek 2009-08-08 03:57:17
但在我的情況下,我需要一次多個點擊。通常戰列艦遊戲一個接一個地點擊,這裏它在遊戲初始化時可以改變 – 2009-08-08 07:22:55