Commit ca19f2fc authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder

math/rand: fix uniform distribution stddev in tests

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 <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 64bd2c49
...@@ -374,7 +374,7 @@ func testReadUniformity(t *testing.T, n int, seed int64) { ...@@ -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]. // Expect a uniform distribution of byte values, which lie in [0, 255].
var ( var (
mean = 255.0 / 2 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)) errorScale = stddev / math.Sqrt(float64(n))
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment