Yes*_*ke. 4 algorithm shuffle probability
我正在撰写一些文章,旨在通过使用与扑克相关的主题来教授开始编程概念.目前,我正在研究洗牌问题.
正如Jeff Atwood在CodingHorror.com上指出的那样,一个简单的改组方法(迭代数组并用阵列中其他地方的随机卡交换每个卡)会产生不均匀的排列分布.在实际应用中,我会使用Knuth Fisher-Yates shuffle来获得更均匀的随机性.但是,我不想用更少编码器友好的算法来解释编程概念.
这就产生了一个问题:如果黑帽子知道你正在使用52张牌的天真洗牌,那么黑帽子有多大的优势呢?看起来它会无限小.
Nic*_*son 13
与天真洗牌相比,knuth shuffle是一个微不足道的变化:只需更换甲板上剩余(未洗涤)部分的任何卡片,而不是整个牌组中的任何位置.如果您认为它是从剩余的未选择卡片中按顺序重复选择下一张卡片,那么它也非常直观.
就个人而言,我认为当正确的算法不复杂(并且更容易想象!)时,教学生的算法很差,这是一种糟糕的方法.
| 归档时间: |
|
| 查看次数: |
3609 次 |
| 最近记录: |