假设我有一个像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