Its*_*mmy 6 python random algorithm shuffle list
在Python中,我希望以一种方式对列表进行洗牌,使得每个元素最终不会超过N它开始的元素,其中N是一个常量.另外,我希望这是公平的.也就是说,满足此约束的每个排列应该是同等可能的(在随机数生成器的实际限制内).
例如,如果N是3,输入是[1, 2, 3, 4, 5, 6],那么结果[2, 1, 3, 6, 4, 5]将是有效的,但[6, 4, 1, 3, 5, 2]不会,因为6和2离它们的起始位置太远.
有没有一种简单的方法在Python中执行此操作?如果没有,是否有一些现有算法可以做到这一点?伪代码很好,如果需要我可以在Python中实现它.
运行时并不是非常重要,因为我每隔几分钟就会在~100k元素上运行一次这样的shuffle,所以如果有必要,我可以等待几秒钟让它运行.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |