1
如何证明随机播放算法的正确性?
我有两种方法可以按随机顺序生成项目列表,并想确定它们是否同样公平(公正)。 我使用的第一种方法是构造元素的整个列表,然后对其进行随机播放(例如Fisher-Yates随机播放)。第二种方法更多是一种迭代方法,该方法使列表在每次插入时都保持乱序。在伪代码中,插入函数为: insert( list, item ) list.append( item ) swap( list.random_item, list.last_item ) 我对展示这种特殊混洗的公平性感兴趣。使用此算法的优点是足够的,即使稍微不公平也可以。要决定,我需要一种评估其公平性的方法。 我的第一个想法是,我需要以这种方式计算可能的总排列与一组最终长度可能的总排列。但是,我对如何计算该算法产生的排列有些困惑。我也不能确定这是最好的还是最简单的方法。