我需要從一定範圍內生成4個不重複的數字。有沒有有效的方法來做到這一點?如何從一定範圍內生成4個不重複的數字?
回答
這是最簡單的方法。
final int LIMIT = 100;
final int COUNT = 4;
Set<Integer> randomNumbers = new HashSet<Integer>(COUNT);
while(randomNumbers.size() < COUNT) {
randomNumbers.add(new Random().nextInt(LIMIT));
}
理論上這可能永遠不會完成,你的循環。至少它是非確定性的,即你不知道它將完成多少步。 –
ArrayList<Integer> numbers= new ArrayList<Integer>();
int from = 2, to = 100;
for(int i=from;i<=to;i++)
{
numbers.add(i);
}
Collections.shuffle(numbers);
挑前四個數量從ArrayList中。
如果你的範圍長度不是太大,這很好。但是如果你有1000萬個數字,那麼把它們加載到內存中就是爲了洗牌。 –
但是如果我有大約120個數字,它會快速工作嗎? –
我這麼認爲。取決於'Collections.shuffle(numbers)'的實現方式。應該沒問題,是的。 –
- 1. 如何從一個範圍內生成3個非重複的隨機數字?
- 2. 生成一定範圍內沒有重複的隨機數
- 3. 如何在一個類構造函數內的一個設定範圍內(不重複!)生成隨機int數?
- 4. .NET的 - 如何生成一定範圍內的隨機數字?
- 5. 如何在一定範圍內自動生成重疊整數
- 6. 生成一個小範圍的隨機不重複的整數
- 7. 如何在python中生成一個隨機數的範圍而不重複
- 8. 如何生成給定範圍內的迴文數字列表?
- 9. JAVA如何生成特定範圍內的數字表?
- 10. 如何將一個範圍中定義的函數添加到另一個範圍內,而不重複?
- 11. 複製數字範圍欄吧在一定範圍內的人
- 12. 如何查找重複數字在一個範圍內的數字
- 13. 如何在PHP中生成一個唯一的數字範圍
- 14. 從ruby中的唯一字符串範圍內生成整數
- 15. 如何在Rust的範圍內生成一個隨機數?
- 16. 如何在mysql的範圍內生成一個唯一的數字
- 17. Java:生成一個範圍內的數字序列?
- 18. 在權重/偏差範圍內生成一個隨機數?
- 19. 需要在給定範圍內生成一對數字C#
- 20. 如何生成一個範圍的數字
- 21. 如何在C範圍內生成一個隨機數?
- 22. 在一個範圍內生成不同的隨機數
- 23. 生成不重複的隨機數在一個真正的大範圍
- 24. 如何在每個數字位於數字範圍內生成隨機數字?
- 25. 需要在指定範圍內生成一個隨機整數
- 26. Java在特定範圍內生成一個隨機數?
- 27. 如何在生成文件的範圍內生成隨機數?
- 28. 的javascript:從範圍生成2個隨機,但不同數字
- 29. 如何在c中生成一個範圍內的隨機數字#
- 30. 如何從一個範圍內的數字內插到另一個範圍內的相應值?
您的研發項目是什麼意思?你有沒有試圖首先在Google上搜索它? –
如果您需要從序列中獲取數字,您可以使用原子整數或需要編寫代碼 – Kick
http://stackoverflow.com/questions/4040001/creating-random-numbers-with-no-duplicates –