[Random] - statistics_test for boost::uuids::detail::seed_rng

Hi, I'm trying to determine how well the boost::uuids::detail::seed_rng generates random numbers. I changed (just on my machine) the statistics_test of the random library so that it will also test seed_rng. Sadly I don't really know how to interpret the results that follow. I included the mt19937 results as well. I assume the results are good. Would someone confirm that and maybe tell me how good/bad they are? D:\Code\boost-trunk\libs\random\test>statistic_tests.exe Confidence level: 0.99; 1-alpha = 0.01; chi_square(19, 36.1909) = 0.99 Running tests on seed_rng KS: 15.92 16.4 equidistribution: 19.28 15.84 2D: 27.12 17.6 runs: up: 18 33.04 down: 22.96 11.12 gaps: 23.6 15.68 poker: 15.6 24.32 coupon collector: 17.2 11.76 permutation: 27.92 21.12 maximum-of-t: 24.4 8.48 birthday spacing: 16.4 20.5333 Running tests on mt19937 KS: 21.36 19.2 equidistribution: 22.16 20.88 2D: 29.2 18 runs: up: 16.72 19.04 down: 21.68 37.6* [0.00666986] gaps: 12.72 19.2 poker: 18.48 14.8 coupon collector: 18 11.76 permutation: 17.04 22.8 maximum-of-t: 14.96 22.08 birthday spacing: 19.6 10.6667 Regards, Andy.

AMDG On 03/13/2011 11:25 AM, Andy Tompkins wrote:
I'm trying to determine how well the boost::uuids::detail::seed_rng generates random numbers.
I changed (just on my machine) the statistics_test of the random library so that it will also test seed_rng. Sadly I don't really know how to interpret the results that follow. I included the mt19937 results as well. I assume the results are good. Would someone confirm that and maybe tell me how good/bad they are?
I think the * indicates a potential issue. Other than that, it's been a while since I looked at the code, so I don't remember what the output means off the top of my head.
D:\Code\boost-trunk\libs\random\test>statistic_tests.exe Confidence level: 0.99; 1-alpha = 0.01; chi_square(19, 36.1909) = 0.99 Running tests on seed_rng KS: 15.92 16.4 equidistribution: 19.28 15.84 2D: 27.12 17.6 runs: up: 18 33.04 down: 22.96 11.12 gaps: 23.6 15.68 poker: 15.6 24.32 coupon collector: 17.2 11.76 permutation: 27.92 21.12 maximum-of-t: 24.4 8.48 birthday spacing: 16.4 20.5333
Running tests on mt19937 KS: 21.36 19.2 equidistribution: 22.16 20.88 2D: 29.2 18 runs: up: 16.72 19.04 down: 21.68 37.6* [0.00666986] gaps: 12.72 19.2 poker: 18.48 14.8 coupon collector: 18 11.76 permutation: 17.04 22.8 maximum-of-t: 14.96 22.08 birthday spacing: 19.6 10.6667
In Christ, Steven Watanabe

On Sun, 13 Mar 2011 11:40 -0700, "Steven Watanabe" <watanabesj@gmail.com> wrote:
AMDG
On 03/13/2011 11:25 AM, Andy Tompkins wrote:
I'm trying to determine how well the boost::uuids::detail::seed_rng generates random numbers.
I changed (just on my machine) the statistics_test of the random library so that it will also test seed_rng. Sadly I don't really know how to interpret the results that follow. I included the mt19937 results as well. I assume the results are good. Would someone confirm that and maybe tell me how good/bad they are?
I think the * indicates a potential issue. Other than that, it's been a while since I looked at the code, so I don't remember what the output means off the top of my head.
The * is for mt19937, thus even if it is an issue, I would assume that it is not an issue with seed_rng. In any event, thank you for your answer. Do you (or the community) thing this should live in Boost.Random instead of a detail of Boost.Uuid?
D:\Code\boost-trunk\libs\random\test>statistic_tests.exe Confidence level: 0.99; 1-alpha = 0.01; chi_square(19, 36.1909) = 0.99 Running tests on seed_rng KS: 15.92 16.4 equidistribution: 19.28 15.84 2D: 27.12 17.6 runs: up: 18 33.04 down: 22.96 11.12 gaps: 23.6 15.68 poker: 15.6 24.32 coupon collector: 17.2 11.76 permutation: 27.92 21.12 maximum-of-t: 24.4 8.48 birthday spacing: 16.4 20.5333
Running tests on mt19937 KS: 21.36 19.2 equidistribution: 22.16 20.88 2D: 29.2 18 runs: up: 16.72 19.04 down: 21.68 37.6* [0.00666986] gaps: 12.72 19.2 poker: 18.48 14.8 coupon collector: 18 11.76 permutation: 17.04 22.8 maximum-of-t: 14.96 22.08 birthday spacing: 19.6 10.6667
In Christ, Steven Watanabe
Regards, Andy Tompkins

AMDG On 03/14/2011 04:07 PM, Andy Tompkins wrote:
The * is for mt19937, thus even if it is an issue, I would assume that it is not an issue with seed_rng.
I will point out that this test only validates that the distribution of sequential calls is uniformly distributed in a few dimensions. It tells you nothing about how unpredictable the sequence is. Looking at the code, I think it may be possible to generate the same values in two different processes if they run simultaneously on a system with no /dev/urandom.
In any event, thank you for your answer.
Do you (or the community) thing this should live in Boost.Random instead of a detail of Boost.Uuid?
Boost.Random already has random_device which should be at least as good as the ad hoc methods that you're using. In Christ, Steven Watanabe
participants (2)
-
Andy Tompkins
-
Steven Watanabe