golang使用时间作为种子生成随机数

如果你运行随机数rand.Intn(n)这个函数,会发现每次生成的随机数都是一样的。

比如:

i := 0
for i<10 {
    i++
    fmt.Println(time.Now(),math.Pi,rand.Intn(3))

}

这段代码分别运行两次,产生的序列是一样的。为了产生“真正”的随机数,可以用时间作为基数。

用下面的方法。

package main
   
import (
    'fmt'
    'time'
    'math/rand'
)
   
func main() {

fmt.Println(time.Now().UnixNano())
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    for i:=0; i<10; i++ {
        fmt.Println(r.Intn(100))
    }
}
//该代码片段来自于: http://www.sharejs.com/codes/go/8974

上面UnixNano返回的是int64,这样r被赋值为一个以时间为基数的随机数生成器,r.Intn(100)产生随机数。

Here is the apis : https://gowalker.org/index

(0)

相关推荐

  • [Go] 获取当前时间戳和时间戳单位转换

    [Go] 获取当前时间戳和时间戳单位转换

  • excel怎样生成随机数

    在写这篇教程之前,我要吟诗一首,啊! 世界仓管千千万,唯有我是大混蛋: 仓库管好还不算,还写教程来骗钱. 辛辛苦苦大半年,粉丝还没到一千: 啥事做着都很难,甩开膀子加油干. 吟完诗了,该写教程啦! 在 ...

  • Excel怎么生成随机数?

    Excel怎么生成随机数?如何生成指定范围内的随机数呢?可以在Excel中使用函数,生成随机数. 1.在单元格中输入函数公式=RANDBETWEEN(10,50),其中10,50表示要生成的范围,这样 ...

  • Java 生成随机数的 5 种方式,你知道几种?

    Java 生成随机数的 5 种方式,你知道几种?

  • Java生成随机数(random()和Random类)

    在Java中要生成一个指定范围之内的随机数字有两种方法:一种是调用Math类的random()方法,一种是使用Random类. Random类提供了丰富的随机数生成方法,可以产生boolean.int ...

  • Excel自动生成指定区间内的随机数,按F9键可实时更新!

    Excel情报局 Excel职场联盟 生产挖掘分享Excel基础技能 Excel爱好者大本营 用1%的Excel基础搞定99%的职场问题 做一个超级实用的Excel公众号 Excel是门手艺玩转需要勇 ...

  • Excel生成1-100的不重复随机数

    说到随机数,我前面有讲过一篇利用随机数来随机排列数据,有时候我们需要得到某个区间的不重复随机数,比如我们想获得1-100的不重复随机数 方法如下 1.比较炫技的解法,在A1单元格输入以下公式,然后按下 ...

  • 【Excel】随机数:生成不重复随机整数的技巧

    Word技巧达人推荐搜索 Word课程 Word表格 段落 邮件合并 样式 图表 今天来讨论一下随机数: 在 Excel 中生成随机数的函数不少,例如:Rand.Randbetween--.. Ran ...

  • 记录使用 Golang math/rand 随机数遇到的坑

    记录使用 Golang math/rand 随机数遇到的坑

  • 批量生成1至100的随机数

    批量生成1至100的随机数 工作中经常会遇到生成随机数的需求有木有? 无论是数据测试还是验证报表公式的正确性,都需要生成随机数来辅助完成,那么你知道最快捷的办法是怎样吗? 那么,今天这个问题怎么破?快 ...