-1

参考这篇文章如何真正洗牌

Java 使用 32/48/64 位随机种子,即使使用 Fisher-Yates 算法作为 2^64 << 52!,也禁止真正的洗牌。

但是在我看来,只要在每个循环中统一生成 <= 52 个随机数,结果将是真正的 52 随机数!根据算法的可能性。

我在这里想念什么?为什么 2^64 甚至在这里相关?

4

1 回答 1

0

正如 Jon Skeet 评论的那样,2^64 是种子数 = 可能序列的数量。您不会对 52 个随机数进行采样,而是使用一个随机数(即种子)进行初​​始化,然后从该种子生成一系列数字,看起来就像是随机的,但仅取决于该初始数(即种子)。

于 2022-03-03T16:11:32.023 回答