16、随机数生成器测试与变更中心测试方法解析

随机数生成器测试与变更中心测试方法解析

1. 随机数生成器测试

1.1 桶测试(Bucket Test)

当一个随机数生成器(RNG)通过均值和方差测试时,我们有一定信心认为它生成的样本来自具有正确均值和方差的分布,但样本仍可能来自完全错误的分布。例如,一个指数分布生成器和一个正态分布生成器,它们的均值和标准差都为 1,均值和方差测试无法检测出调用这两个生成器时的错误交换。

桶测试的做法是将输出范围划分为 k 个不重叠且覆盖整个输出范围的桶。设 $E_i$ 为第 i 个桶的期望样本数,$O_i$ 为实际观察到的样本数,然后计算卡方统计量:

若该值过大,说明观察到的计数与期望计数差异过大,生成器可能不符合正确的分布;若过小,则说明期望计数与期望值过于一致,缺乏足够的随机变化。

1.1.1 桶的数量

桶的数量很关键。若桶太少,测试要求不高,可能检测不出错误;若桶太多,每个桶中的样本数可能不足,无法满足测试的理论要求。通常的经验法则是每个桶的期望样本数至少为 5。我们可以先确定桶的数量,再选择足够大的样本数 n,以确保每个桶的期望样本数远大于 5。

1.1.2 桶的位置

可以任意决定桶的数量,例如 10 个,并选择边界,使每个桶的期望样本数相等。以测试柯西随机数生成器为例,可以使用柯西分布函数找到截止值 $x_i$(i = 1, 2, 3, …, 9),使 10% 的样本小于 $x_1$,10% 在 $x_1$ 和 $x_2$ 之间,以此类推。此外,如果对某个区域特别感兴趣,也可以将其作为一个桶。

1.1.3 卡方值的范围

如果有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值