diff --git a/077-rand.go b/077-rand.go index 91ddc71..4256166 100644 --- a/077-rand.go +++ b/077-rand.go @@ -1,26 +1,37 @@ - // The `math/rand` package provides psuedo-random numbers. - -package main - +package main // The `math/rand` package provides psuedo-random + // numbers. import ( "math/rand" "fmt" ) func main() { - fmt.Println(rand.Intn(100)) // For example, `rand.Intn` returns a random `int` n, - fmt.Println(rand.Intn(100)) // `0 <= n < 100`. + fmt.Print(rand.Intn(100), ",") // For example, `rand.Intn` returns a random `int` n, + fmt.Print(rand.Intn(100)) // `0 <= n < 100`. + fmt.Println() - - fmt.Println(rand.Float64()) // `rand.Float64` returns a `float64` `f`, `0.0 <= f < 1.0`. - - r1 := rand.New(rand.NewSource(int64(1337))) // To make the psuedo-random generator deterministic, give it a - // well-known seed. + fmt.Println(rand.Float64()) // `rand.Float64` returns a `float64` `f`, + // `0.0 <= f < 1.0`. + + s1 := rand.NewSource(42) // To make the psuedo-random generator deterministic, + r1 := rand.New(s1) // give it a well-known seed. + - fmt.Println(r1.Intn(100)) // Call the resulting `rand.Source` just like the functions on - fmt.Println(r1.Intn(100)) // the `rand` package. + fmt.Print(r1.Intn(100), ",") // Call the resulting `rand.Source` just like the + fmt.Print(r1.Intn(100)) // functions on the `rand` package. + fmt.Println() - r2 := rand.New(rand.NewSource(int64(1337))) // If you seed a source with the same number, it produces the - fmt.Println(r2.Intn(100)) // same sequence of random numbers. - fmt.Println(r2.Intn(100)) + s2 := rand.NewSource(42) // If you seed a source with the same number, it + r2 := rand.New(s2) // produces the same sequence of random numbers. + fmt.Print(r2.Intn(100), ",") + fmt.Print(r2.Intn(100)) + fmt.Println() } + +/* +$ go run rand.go +81,87 +0.6645600532184904 +5,87 +5,87 +*/