CASE1:不设置随机数种子,得到的随机数序列是固定的
输入:
func main() {
fmt.Println("My first lucky number is", rand.Intn(10))
fmt.Println("My senond lucky number is", rand.Intn(10))
}
输出:
My first lucky number is 1
My senond lucky number is 7
在本环境中,不论编译运行多少次,都是这个输出。
为什么没有产生随机的效果呢?
此程序的运行环境是固定的,因此 rand.Intn 总是会返回相同的数字。 (要得到不同的数字,需为生成器提供不同的种子数)
CASE2:随机数种子谨慎设置在for循环中
输入:
for i := 0; i < 20;i++ {
rand.Seed(time.Now().Unix())
fmt.Println(rand.Intn(10))
}
又得到了完全一样的随机数…
打印了一下每次seed的时间戳居然是相同的,所以结论就是,相同的seed得到的随机数序列也是相同的。