diff --git a/examples/random-numbers/random-numbers.go b/examples/random-numbers/random-numbers.go index d12c72e..f46c27a 100644 --- a/examples/random-numbers/random-numbers.go +++ b/examples/random-numbers/random-numbers.go @@ -4,6 +4,7 @@ package main +import "time" import "fmt" import "math/rand" @@ -25,9 +26,12 @@ func main() { fmt.Print((rand.Float64() * 5) + 5) fmt.Println() - // To make the pseudorandom generator deterministic, - // give it a well-known seed. - s1 := rand.NewSource(42) + // The default number generator is deterministic, so it'll + // produce the same sequence of numbers each time by default. + // To produce varying sequences, give it a seed that changes. + // Note that this is not safe to use for random numbers you + // intend to be secret, use `crypto/rand` for those. + s1 := rand.NewSource(time.Now().UnixNano()) r1 := rand.New(s1) // Call the resulting `rand.Rand` just like the diff --git a/examples/random-numbers/random-numbers.hash b/examples/random-numbers/random-numbers.hash index 85b60de..e68f800 100644 --- a/examples/random-numbers/random-numbers.hash +++ b/examples/random-numbers/random-numbers.hash @@ -1,2 +1,2 @@ -f7ce9724ab51b3e90b8d04cf88eaaa8cf2dfd50e -X973CNW5aa +6ce1f98d3c22ee8bf02c41b393361d6cd5fff23a +TZElZIwNU1 diff --git a/examples/random-numbers/random-numbers.sh b/examples/random-numbers/random-numbers.sh index 92e6f35..2f9521e 100644 --- a/examples/random-numbers/random-numbers.sh +++ b/examples/random-numbers/random-numbers.sh @@ -1,4 +1,4 @@ -$ go run random-numbers.go +$ go run random-numbers.go 81,87 0.6645600532184904 7.123187485356329,8.434115364335547 diff --git a/public/random-numbers b/public/random-numbers index e12081c..1221235 100644 --- a/public/random-numbers +++ b/public/random-numbers @@ -41,7 +41,7 @@ generation.

- +
package main
 
@@ -54,7 +54,8 @@ generation.

-
import "fmt"
+            
import "time"
+import "fmt"
 import "math/rand"
 
@@ -121,13 +122,16 @@ other ranges, for example 5.0 <= f' < 10.0.

-

To make the pseudorandom generator deterministic, -give it a well-known seed.

+

The default number generator is deterministic, so it’ll +produce the same sequence of numbers each time by default. +To make it non-deterministic, give it a seed that changes. +Note that this is not safe to use for random numbers you +intend to be secret, use crypto/rand for those.

-
    s1 := rand.NewSource(42)
+            
    s1 := rand.NewSource(time.Now().UnixNano())
     r1 := rand.New(s1)
 
@@ -179,7 +183,7 @@ produces the same sequence of random numbers.

-
$ go run random-numbers.go 
+            
$ go run random-numbers.go
 81,87
 0.6645600532184904
 7.123187485356329,8.434115364335547