package main import "fmt" import "math/rand" func main() { //例如,rand.Intn 返回一個隨機的整數 n,0 <= n <= 100。 fmt.Print(rand.Intn(100), ",") fmt.Print(rand.Intn(100)) fmt.Println() //rand.Float64 返回一個64位浮點數 f,0.0 <= f <= 1.0。 fmt.Println(rand.Float64()) //這個技巧可以用來生成其他范圍的隨機浮點數,例如5.0 <= f <= 10.0 fmt.Print((rand.Float64()*5)+5, ",") fmt.Print((rand.Float64() * 5) + 5) fmt.Println() //要讓偽隨機數生成器有確定性,可以給它一個明確的種子。 s1 := rand.NewSource(42) r1 := rand.New(s1) //調用上面返回的 rand.Source 的函數和調用 rand 包中函數是相同的。 fmt.Print(r1.Intn(100), ",") fmt.Print(r1.Intn(100)) fmt.Println() 如果使用相同的種子生成的隨機數生成器,將會產生相同的隨機數序列。 s2 := rand.NewSource(42) r2 := rand.New(s2) fmt.Print(r2.Intn(100), ",") fmt.Print(r2.Intn(100)) fmt.Println() } $ go run random-numbers.go 81,87 0.6645600532184904 7.123187485356329,8.434115364335547 5,87 5,87