有没有办法测试PRNG的多维使用质量?
我正在评估一些PRNG,无论是在速度和质量方面。 我想测试的质量的一个方面是多维分布和偏差。
我知道TestU01的电池,并且我计划使用它们(也许还有NIST建议的其他电池)。
但是测试多维偏见呢? Boost的PRNG有一些评论,而Mersenne Twister在数百个维度上是统一的,而Hellekalek PRNG在“多个”维度上具有良好的均匀分布(然而很多这意味着......)。
我想,多维偏置电池测试的运行时复杂度会随着每个维度而增加。 所以这个测试可能没有合适的电池。 但是,我还没有证实这一怀疑。
有没有一种已知的方法来测试多维偏见的PRNG? 如果测试仅限于2,3或4个维度,我甚至还可以; 那会比根本没有测试好。
TestU01很好。 PractRand可以说更好(全面披露:我写了PractRand)。 对于某些类别的PRNG,RaBiGeTe也很体面。 还有其他选项不好(NIST STS,Diehard和Dieharder众所周知但效果不佳)。
任何好的测试套件都会测试各种各样的“维度”,尽管从根本上来说,对较短范围的相关性进行全面测试更容易,所以更好的工作是在较小的维度上完成的。
一般来说,任何通过TestU01 BigCrush电池和/或一兆兆字节的PractRand标准电池的物品都可能适用于真实世界的非加密用途。 但是这种测试无法确定某些类别的问题,特别是种子间相关性问题。
链接地址: http://www.djcxy.com/p/37273.html上一篇: Is there a way to test the quality of a PRNG for multidimensional use?