什么是好的洗牌百分比?

时间:2010-10-11 04:52:09

标签: arrays algorithm

我基本上是编码随机结果的新手,但做了一些阅读并测试了Fisher-Yates算法的javascript版本(如维基百科上所见),并带有一个有序列表。

我最后添加了代码以确保数组的洗牌方式与其初始顺序不同,并且还计算了算法将多少个对象混洗到不同位置的百分比。

所以我想知道什么可能被认为是一个好结果。一般的问题。如果我洗牌一副牌,最不可接受的洗牌量是多少?现在,我已经编码了重复算法,如果它的重复率低于25%。

您怎么看?

3 个答案:

答案 0 :(得分:9)

。您可以使任何数量的支票使其感觉更随机,但即使检查相同的订单也会使您的算法存在缺陷。

答案 1 :(得分:6)

如果你的shuffle算法被正确实现并产生一个真正随机的shuffle(以PRNG的随机性为模,或者没有它),我根本不会重新洗牌。特别是,您不接受与原始配置相似的25 +%的随机配置这一事实告诉对手,在您的改组完成后,他们可能不会看到任何这些配置。

答案 2 :(得分:0)

感谢您的反馈。你的所有答案都是相关的。

我正在添加这个答案,因为我的洗牌概念从随机变为非随机,现在我正在使用两者的混合。

通过完美的随机播放,我可以生成不同顺序的多个列表(调整项目数量)。但是,当项目数为奇数时,最后一个数字不会被洗牌。所以我决定将其在洗牌列表中的位置随机化。

在计算出来的过程中,我制作了一个表生成器,在给定多个项目的情况下显示所有列表。这很有意思。例如,数字52生成52列,而数字51仅生成8列。