首页 > 后端开发 > Golang > 为什么我的 Go 代码不断生成相同的随机数?

为什么我的 Go 代码不断生成相同的随机数?

Linda Hamilton
发布: 2024-10-26 12:43:29
原创
788 人浏览过

Why Does My Go Code Keep Generating the Same Random Number?

解决 Go 中的重复随机数生成问题

Go 中,rand.Intn(n int) int 函数返回一个伪随机整数在 [0, n) 范围内。但是,您遇到了一个问题,即它始终打印相同的数字。

文档建议 rand.Intn 使用默认 Source,它会生成确定性的值序列。要自定义行为并确保随机性,您必须正确播种随机数生成。

要为随机数生成器播种,请调用 rand.Seed(seed int64) 函数。此函数使用种子值初始化默认 Source。常见的做法是使用当前的 Unix 时间戳:

<code class="go">rand.Seed(time.Now().UnixNano())</code>
登录后复制

通过为生成器播种,您可以确保程序的每次运行都会产生不同的随机数。

如果 rand.Seed()不被调用,生成器的行为就好像以 1 为种子,导致观察到的重复。

以上是为什么我的 Go 代码不断生成相同的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板