//使用时间戳当做随机种子来生成随机数
package main
import (
"fmt"
"math/rand" //生成随机数
"time" //生成时间函数
)
func main() {
a := rand.NewSource(time.Now().Unix())
r := rand.New(a)
fmt.Println(r.Intn(100)) // [0,100)的随机值,返回值为int
fmt.Println(r.Int31()) // 31位int随机值,返回值为int32
fmt.Println(r.Int31n(100)) // [0,100)的随机值,返回值为int32
fmt.Println(r.Float32()) // 32位float随机值,返回值为float32
fmt.Println(r.Float64()) // 64位float随机值,返回值为float64
fmt.Println(r.Intn(100) - 50) // [-50, 50)的随机值
}
用go生成随机数时,如果不设置一个随机种子,那么返回的是同一个值 如:
package main
import ("fmt")
import ("math/rand")
var array = [100]int{}
func main() {
fmt.Println(rand.Intn(100))
}
所以一般使用时间戳来当做随机种子