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)范围内的随机数.换句话说,我希望生成正负数字的混合.

推荐答案

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

rand.Intn(max - min) + min

在调用任何rand函数之前,不要忘了从seed the PRNG开始.

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

Go相关问答推荐

T的Golang通用切片,其中 *T实现接口

Go在使用HTTP代理时如何处理DNS请求?

为什么(编码器).EncodeElement忽略";,innerxml";标记?

转到http服务器头内容-类型设置为多部分/表单-数据,但在客户端获取内容-类型:文本/纯文本

我可以在Golang中的另一个类型参数的基础上约束一个类型的参数吗?

如何使用 go 读取 RDF xml 文件中的 XML 命名空间属性

golang testscript .txtar 语法,用于 stderr 或 stdout 中包含的文本

在VSCode中如何使用特定的文件名提供编译命令

「GORM错误」不支持的数据类型:&[],不正确的模式

对 CSV 进行单元测试失败

转换朴素递归硬币问题时的记忆错误

枚举的 Golang 验证器自定义验证规则

fmt.Printf() 标志 '0' 不会被字符串忽略

如何将一片十六进制字节转换为整数

Golang BigInt 部门

使用反射在 struct 内迭代切片 struct

具有近似约束的函数值导致的实例化失败

Go Fyne 禁用 HSplit 调整大小?

HTTP 重定向不呈现新页面

是否存在一个Go泛型类型约束,该约束捕获了将类型用作映射中的键的能力?