Is there a way to test the quality of a PRNG for multidimensional use?
I'm in the process of evaluating some PRNGs, both in terms of speed and quality. One aspect of quality I want to test is multidimensional distribution and bias.
I know of TestU01's batteries, and I plan on using them (and, perhaps, others that the NIST suggests).
But what about testing multidimensional bias? Boost's PRNG have some comments, and the Mersenne Twister is known to be uniform in several hundred dimensions, while the Hellekalek PRNG has good uniform distribution in "several" dimensions (however many that means...).
I imagine the runtime complexity of a battery testing for multidimensional bias would increase with each dimension. So it's possible there isn't a suitable battery for this test. However, that I haven't confirmed that suspicion.
Is there a known way to test PRNGs for multidimensional bias? I'd even be okay if the test is limited to 2, 3, or 4 dimensions; that would be better than no test at all.
TestU01 is good. PractRand is arguably better (full disclosure: I wrote PractRand). For some categories of PRNGs, RaBiGeTe is also decent. There are other options which are not good (NIST STS, Diehard, and Dieharder are well known but ineffective).
Any good test suite will test a wide variety of numbers of "dimensions", though fundamentally it is easier to do comprehensive testing for shorter range correlations, so a better job is done on smaller numbers of dimensions.
Generally, anything that passes the TestU01 BigCrush battery and/or one terabyte of PractRand standard battery is likely to be fine for real-world non-cryptographic usage. This kind of testing cannot identify some categories of problems however, particularly inter-seed correlation issues.
链接地址: http://www.djcxy.com/p/37274.html上一篇: 一次不使用所有位时的PRNG质量
下一篇: 有没有办法测试PRNG的多维使用质量?