具有随机性的Riffle shuffle算法

时间:2014-01-10 09:01:11

标签: algorithm random

riffle shuffle算法太机械且可预测。我们如何添加一些随机性,好像真正的人正在洗牌但仍然使用浅滩方法?

1 个答案:

答案 0 :(得分:2)

在Aldous和Diaconis的论文 Shuffling Cards and Stoping Times 中(来自美国数学月刊, 93 :5,pp 333-348),作者研究了如何需要很多洗牌来随机化一副​​牌。该论文的第4部分是分析Shiffle Shuffles ,他们讨论了(非完美)卡片的等效公式。

特别是,他们引用了一个模型,用于模拟“真正的”人们如何随意改变洗牌。基本上,根据二项分布将牌组分成两部分,一手牌c,另一手牌n-c。然后,这些卡“从给定的手中丢弃,概率与数据包大小成比例”

因此,一个简单的应用程序将假设您的牌组最初分成两个相等的牌,然后重复选择下一张牌来自哪一块,a / (a+b)概率来自该牌块{当前大小a的{​​1}}和b / (a+b)概率。