gobyexample/examples/random-numbers/random-numbers.go
2012-10-09 21:02:12 -07:00

38 lines
951 B
Go

package main
// The `math/rand` package provides psuedo-random
// numbers.
import "math/rand"
import "fmt"
func main() {
// For example, `rand.Intn` returns a random `int` n,
// `0 <= n < 100`.
fmt.Print(rand.Intn(100), ",")
fmt.Print(rand.Intn(100))
fmt.Println()
// `rand.Float64` returns a `float64` `f`,
// `0.0 <= f < 1.0`.
fmt.Println(rand.Float64())
// To make the psuedo-random generator deterministic,
// give it a well-known seed.
s1 := rand.NewSource(42)
r1 := rand.New(s1)
// Call the resulting `rand.Source` just like the
// functions on the `rand` package.
fmt.Print(r1.Intn(100), ",")
fmt.Print(r1.Intn(100))
fmt.Println()
// If you seed a source with the same number, it
// produces the same sequence of random numbers.
s2 := rand.NewSource(42)
r2 := rand.New(s2)
fmt.Print(r2.Intn(100), ",")
fmt.Print(r2.Intn(100))
fmt.Println()
}