我正在将一个工具从 C++ 翻译成 Go。C++ 工具使用 boost::random 库并调用 boost::uniform_int。我想知道 Go 中是否有类似的“开箱即用”功能。如果没有,我需要一些帮助来构建我自己的。我梳理了 Go 的 math/rand 包,但没有找到任何明显等效的东西。这是C++工具中的函数声明/调用boost::uniform_int<unsigned int> randomDistOp(1, 100);
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
该Intn方法应该给你你想要的。
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
fmt.Println(1 + r.Intn(100))
}
这提供了 [0, n) 中的均匀随机整数。要设置不同的下限,只需将其添加到结果中即可。需要明确的是,Intn(100)将返回 100 以内但不包括 100 的数字,因此加 1 将为您提供从 1 到 100 的正确范围。
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报
0/150
提交
取消