mirror of
https://github.com/golang/go
synced 2024-10-03 06:21:21 -06:00
undo CL 6845121 / 79603a5e4cda
This changes the output of rand.Seed(0) perm := rand.Perm(100) When giving the same seeds to Go 1.0 and Go 1.1 programs I would like them to generate the same random numbers. ««« original CL description math/rand: remove noop iteration in Perm The first iteration always do `m[0], m[0] = m[0], m[0]`, because `rand.Intn(1)` is 0. fun note: IIRC in TAOCP version of this algorithm, `i` goes backward (n-1->1), meaning that the "already" shuffled part of the array is never altered betweens iterations, while in the current implementation the "not-yet" shuffled part of the array is conserved between iterations. R=golang-dev CC=golang-dev https://golang.org/cl/6845121 »»» R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6905049
This commit is contained in:
parent
9088d17afb
commit
ff2534e076
@ -100,7 +100,7 @@ func (r *Rand) Perm(n int) []int {
|
||||
for i := 0; i < n; i++ {
|
||||
m[i] = i
|
||||
}
|
||||
for i := 1; i < n; i++ {
|
||||
for i := 0; i < n; i++ {
|
||||
j := r.Intn(i + 1)
|
||||
m[i], m[j] = m[j], m[i]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user