gpt4 book ai didi

algorithm - 什么是好的一次性伪随机洗牌?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:36 26 4
gpt4 key购买 nike

<分区>

Fisher-Yates shuffle给出了一个很好的算法来在单次传递中打乱长度为 n 的数组 A:

For k = 1 to n
Pick a random integer j from k to n
Swap A[k] and A[j]

通过该算法一次后,A 的条目均匀随机出现。

搞砸该算法的一种常见方法是执行以下操作:

For k = 1 to n
Pick a random integer j from 1 to n
Swap A[k] and A[j]

单次通过该算法得到的分布不是均匀随机,在这篇文章中有很好的讨论:What distribution do you get from this broken random shuffle?

我最近读了一篇令人愉快的文章,作者是 Diaconis、Fulman 和 Holmes,题为 Analysis of Casino Shelf Shuffling Machines作者描述了一台执行以下批处理洗牌的物理机器:

For k = 1 to n
Pick a random integer j from 1 to 10
Randomly choose to place card k on the top or bottom of stack j

作者要解决的问题是,这是否会在单次通过后给出合理的随机排序。答案是肯定不会。查看此洗牌中缺陷的一种方法是从一副纸牌开始,该纸牌在 n/2 黑牌之上有 n/2 红牌。单次通过后生成的牌组最多有 10 block 红牌!对于 n = 52*6,这不是非常随机的。作者还表明,一次洗牌的最佳“猜下一张牌”策略平均会正确猜出 9.5 张牌,而随机牌组的最佳策略平均只能正确猜出 4.5 张牌。

是否有任何其他有趣的单 channel 洗牌可以实现近乎随机性和/或有趣的分布?我对类似于后者的洗牌特别感兴趣,它可以处理成批的条目。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com