我需要从一定范围内生成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. 需要在给定范围内生成一对数字C#
- 19. 如何生成一个范围的数字
- 20. 如何在C范围内生成一个随机数?
- 21. 在一个范围内生成不同的随机数
- 22. 生成不重复的随机数在一个真正的大范围
- 23. 如何在每个数字位于数字范围内生成随机数字?
- 24. Java在特定范围内生成一个随机数?
- 25. 的javascript:从范围生成2个随机,但不同数字
- 26. 如何在c中生成一个范围内的随机数字#
- 27. 生成一个随机数的范围
- 28. 如何从一个范围内的数字内插到另一个范围内的相应值?
- 29. 定位范围内的一个范围
- 30. 如何使用rand()生成范围内的数字?
您的研发项目是什么意思?你有没有试图首先在Google上搜索它? –
如果您需要从序列中获取数字,您可以使用原子整数或需要编写代码 – Kick
http://stackoverflow.com/questions/4040001/creating-random-numbers-with-no-duplicates –