在围棋中生成一个范围内的随机数

新手上路,请多包涵

math/rand 中的所有整数函数生成非负数。

 rand.Int() int              // [0, MaxInt]
rand.Int31() int32          // [0, MaxInt32]
rand.Int31n(n int32) int32  // [0, n)
rand.Int63() int64          // [0, MaxInt64]
rand.Int63n(n int64) int64  // [0, n)
rand.Intn(n int) int        // [0, n)

我想生成 [-m, n) 范围内的随机数。换句话说,我想生成正数和负数的混合。

原文由 ryboe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 443
2 个回答

我在 Go Cookbook 找到了这个例子,它相当于 rand.Range(min, max int) (如果该函数存在):

 rand.Intn(max - min) + min

不要忘记在调用任何 rand 函数之前 为 PRNG 播种。

 rand.Seed(time.Now().UnixNano())

原文由 ryboe 发布,翻译遵循 CC BY-SA 4.0 许可协议

这将在给定范围内生成随机数 [a, b]

 rand.Seed(time.Now().UnixNano())
n := a + rand.Intn(b-a+1)

资源

原文由 Asalle 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题