Go生成随机数
生成随机数
-
概念
伪随机数,都是根据一定的算法公式算出来的。
-
所在包
math/rand 生成随机数的公式需要一个种子数,一般为整数。种子数相同会导致每次启动程序是生成随机数相同,为了避免重复每次生成随机数最好设置不同的种子数
-
关键函数
func (r *Rand) Intn(n int) int //返回一个取值范围在[0,n)的伪随机int值,如果n<=0会panic。
func (r *Rand) Seed(seed int64) //使用给定的seed来初始化生成器到一个确定的状态。修改种子数 //example ct :=time.Now() //代表当前时间的time对象 ts := ct.Unix() //unix时间戳 fmt.Println(ts) //利用时间戳设置rand的种子数 rand.Seed(ts) num1 := rand.Intn(50) fmt.Println(num1)
-
获取指定范围[m,n]的随机数
- 首先获取[0,n-m+1)范围的随机数
- 再在范围上加m