From ca19f2fc78a5b6b97d842a4a9816a9d1eea12f05 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Wed, 26 Jul 2017 10:59:08 -0700 Subject: [PATCH] math/rand: fix uniform distribution stddev in tests MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The standard deviation of a uniform distribution is size / √12. The size of the interval [0, 255] is 256, not 255. While we're here, simplify the expression. The tests previously passed only because the error margin was large enough. Sample observed standard deviations while running tests: 73.7893634666819 73.9221651548294 73.8077961697150 73.9084236069471 73.8968446814785 73.8684209136244 73.9774618960282 73.9523483202549 255 / √12 == 73.6121593216772 256 / √12 == 73.9008344562721 Change-Id: I7bc6cdc11e5d098951f2f2133036f62489275979 Reviewed-on: https://go-review.googlesource.com/51310 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/math/rand/rand_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/math/rand/rand_test.go b/src/math/rand/rand_test.go index bf509e06be..55d2902c69 100644 --- a/src/math/rand/rand_test.go +++ b/src/math/rand/rand_test.go @@ -374,7 +374,7 @@ func testReadUniformity(t *testing.T, n int, seed int64) { // Expect a uniform distribution of byte values, which lie in [0, 255]. var ( mean = 255.0 / 2 - stddev = math.Sqrt(255.0 * 255.0 / 12.0) + stddev = 256.0 / math.Sqrt(12.0) errorScale = stddev / math.Sqrt(float64(n)) ) -- 2.48.1