|
|
1
8
好吧,作为黑盒测试,你可以做的一件事是取一些相对较小的数组大小,对其执行大量的无序排列,计算你观察每个排列的次数,然后执行 Pearson's Chi-square 测试结果是否均匀分布在置换空间上。 另一方面,只要指数来自的随机数生成器是无偏的,那么Knuth Shuffle(又称Fisher Yates Shuffle)就被证明是无偏的。 |
|
|
2
8
如果我看对了,你的
这条线:
然后一个错误产生一个“经典”关闭,作为
|
|
|
3
3
|
|
|
4
2
Knuth洗牌本身是无偏的:只有一系列的操作产生了每个可能的洗牌。然而,您的prng不太可能有足够的状态位来表示每一个可能的随机播放,所以真正的问题是,您的prng是否“足够随机”,与它将实际产生的随机播放集有关,以及您的播种策略是否足够安全。 只有你才能决定这一点,因为这取决于随机性不够强的洗牌的后果。例如,如果您处理的是真正的钱,我建议切换到加密安全的prng,并改进您的播种策略。虽然大多数内置的prng生成了很好的随机性,但它们也很容易进行反向工程,并且不带参数调用seed()很可能基于当前时间进行种子设定,这很容易预测。 |
|
|
5
0
|
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 2 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 2 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 2 年前 |