![]() |
1
3
编辑: AS Paul Hankin 在评论中,我最初的测试只检查了每个元素落入每个位置的概率,而不是所有排列的概率相等,这是一个更强的要求。下面的片段统计每个排列的频率,这是我们应该看到的:
如果shuffle是一致的,则
我觉得看起来 好的 但同样,对于定量结果,您需要更深入的统计分析,例如 Pearson's chi-squared test ,由建议 David Eisenstat . 原始答案: 我将在这里提出一些基本的想法,但我没有最强大的统计背景,所以可能有人想补充或纠正任何错误。 您可以将每个值的频率矩阵放入每个位置进行多次试验:
一旦你能做到这一点,你可以采取几种方法。一个简单的想法是,如果洗牌是均匀的,
这些“足够近”和“足够小”虽然不是很坚实的概念。扎根分析需要更多的统计工具。我想你需要
test the hipothesis
每个频率值都是从
binomial distribution
具有
|
![]() |
2
3
通过将所有可能的随机数序列注入
此代码可以:
此代码检查大小为1、2、3、4、5的输入列表的正确性。你可以在n之前再往前走一点!变得太大了。
您还需要使用
|
![]() |
3
0
如果从给定的固定顺序随机洗牌相同的项目,则 一 洗牌项目中的固定位置应该趋向于相同的值。 下面我将列表0..9洗几次并打印输出:
跑一次你可能会得到这样的东西: 0: 99947 1: 100522 2: 99828 3: 100123 4: 99582 5: 99635 6: 99991 7: 100108 8: 100172 9: 100092 再说一遍: 0: 100049 1: 99918 2: 100053 3: 100285 4: 100293 5: 100034 6: 99861 7: 99584 8: 100055 9: 99868
现在如果你有成千上万的物品要洗牌,那么它们应该在
|
![]() |
CXB · 洗牌-无重复JAVA 7 年前 |
![]() |
Eltorrooo · 为什么哈希集中的顺序从未改变?[副本] 7 年前 |
![]() |
Muiter · Foreach循环在输出时被洗牌[重复] 7 年前 |
![]() |
Sparrky · 我如何从无序函数中获取输出并围绕DOM元素移动? 7 年前 |
![]() |
Paul · 如何在php shuffle中组合两个数组 7 年前 |
![]() |
Sergio Manchado · 在两个列表之间随机移动元素 7 年前 |
![]() |
Joe · 无序排列内爆数组(HTML复选框到数组)[重复] 7 年前 |
![]() |
Roald · 围绕NA值对向量的部分顺序重新排序 8 年前 |