java - 可以将 Collections.shuffle 视为等同于一系列 Randoms 吗?

标签 java random

跟随这个问题:Shuffling numbers in a map and selecting one.

假设您需要从 List 中随机选择一系列整数。 Collections.shuffle 是否可以被视为等同于重复使用 Random#nextInt

我不熟悉 shuffle 的实现方式以及它们是否可以从数学角度(排列)被视为真正等价。下面的链接确实强调了使用单个 Random 对象的重要性。

http://www.javapractices.com/topic/TopicAction.do?Id=62

P.S:我知道 Collections.shuffle 添加了一个操作,它实际上重新组织了内容。这是我感兴趣的结果。

编辑:在 SO 上发现了这个问题,详细说明了使用所谓的 Fisher-Yates 洗牌的洗牌方法:Java's Collections.shuffle is doing what?

最佳答案

如果您问是否使用 Collections.shuffle 然后使用生成的随机排序数字列表等同于使用 Random 一个一个地挑选它们,答案是不。后者很可能会两次返回相同的索引,这将导致重复。

关于java - 可以将 Collections.shuffle 视为等同于一系列 Randoms 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6882081/

相关文章:

java - TextTransfer类型解决问题

python - random.randint(2, 12) 每次在 Python 中运行时都返回相同的结果

C++ 11 随机数生成不起作用

c - 如何在一个运行时生成不同的随机数?

java - 无法解析方法 getChildren.addAll();

java - 为什么我的第一个 Activity 没有显示?

java - playframework: WSRequestHolderholder = WS.url(url) -> 错误:没有找到适合 url(String) 的方法

java - 我如何使用 Jsoup 遍历 HTML 树?

string - 从给定字符生成固定长度的随机字符串的最 Pythonic 方式

ios - 在 Objective-C 中生成 3 个唯一的随机数?