|
|
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
现在如果你有成千上万的物品要洗牌,那么它们应该在
|
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 11 月前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 11 月前 |
|
|
Pengcheng · 这个简单的递归函数的输出是什么?你能详细解释一下吗? 11 月前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |