首页 > 技术文章 > Go生成随机数

henryno12 2020-02-21 19:46 原文

生成随机数

  1. 概念

    伪随机数,都是根据一定的算法公式算出来的。

  2. 所在包

    math/rand 生成随机数的公式需要一个种子数,一般为整数。种子数相同会导致每次启动程序是生成随机数相同,为了避免重复每次生成随机数最好设置不同的种子数

  3. 关键函数

    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)
    
  4. 获取指定范围[m,n]的随机数

    1. 首先获取[0,n-m+1)范围的随机数
    2. 再在范围上加m

推荐阅读