1
0
mirror of https://github.com/golang/go synced 2024-11-18 01:04:48 -07:00

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: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Josh Bleecher Snyder 2017-07-26 10:59:08 -07:00
parent 64bd2c49b4
commit ca19f2fc78

View File

@ -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))
)