在Go中生成固定长度随机数最快,最简单的方法是什么?
说要生成8位数字长的数字,问题rand.Intn(100000000)是结果可能远远少于8位数字,并且用前导零填充它对我来说似乎不是一个好答案。
即,我更关注随机性的质量,即其长度。所以我在想,对于这个特定的问题,下面的方法是最快,最简单的方法吗?
99999999 - rand.Int63n(90000000)
Run Code Online (Sandbox Code Playgroud)
即,Int63n对于我的情况,我想可能比更好Intn。是真的,还是只是一厢情愿?关于完整的8位数字的随机性,两者是否相同,或者确实有一个比另一个更好?
最后,还有什么比以上更好的方法了?
更新:
low + rand(hi-low)大家都知道,请不要提供答案。这相当于我现在正在做的事情,并且没有回答我真正的问题:“关于完整的8位数字的随机性,两者是相同的,还是真的有一个比另一个更好?”
如果没有人能够回答,我将在两者之间绘制一个二维散点图,然后找出自己...
谢谢
这是用于生成范围内数字的通用功能
func rangeIn(low, hi int) int {
return low + rand.Intn(hi-low)
}
Run Code Online (Sandbox Code Playgroud)
看到它 Playground
在您的特定情况下,尝试生成8位数字,范围为 (10000000, 99999999)
| 归档时间: |
|
| 查看次数: |
3807 次 |
| 最近记录: |