我正在评估一些PRNG,包括速度和质量。我想测试的质量的一个方面是多维分布和偏见。
我知道TestU01的电池,我打算使用它们(也许还有NIST建议使用的其他电池。)
但是测试多维偏差呢? Boost's PRNG有一些评论,并且已知Mersenne Twister在几百个维度上是统一的,而Hellekalek PRNG在"几个"中有良好的均匀分布。尺寸(但很多意味着...)。
我认为对于多维偏差的电池测试的运行时复杂性会随着每个维度而增加。因此,可能没有合适的电池用于此测试。但是,我还没有证实这种怀疑。
是否有一种已知的方法来测试PRNG的多维偏差?如果测试仅限于2,3或4维,我甚至可以。这比没有测试好。
答案 0 :(得分:0)
TestU01很好。 PractRand可以说更好(完全披露:我写了PractRand)。对于某些类别的PRNG,RaBiGeTe也很不错。还有其他选择并不好(NIST STS,Diehard和Dieharder众所周知但效果不佳)。
任何好的测试套件都会测试各种数量的尺寸和尺寸,但从根本上说,对更短距离的相关性进行全面测试更容易,因此在较小的尺寸上可以做得更好。
通常,任何通过TestU01 BigCrush电池和/或1TB PractRand标准电池的电池都可能适用于真实的非加密用途。然而,这种测试无法识别某些类别的问题,特别是种子间相关性问题。