rand
This commit is contained in:
parent
8612ba6589
commit
c1addcaab4
43
077-rand.go
43
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
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user