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

新手上路,请多包涵

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 许可协议

阅读 539
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 许可协议

推荐问题