有没有可以与 boost::uniform_int 相媲美的 Go 函数?

我正在将一个工具从 C++ 翻译成 Go。C++ 工具使用 boost::random 库并调用 boost::uniform_int。我想知道 Go 中是否有类似的“开箱即用”功能。如果没有,我需要一些帮助来构建我自己的。

我梳理了 Go 的 math/rand 包,但没有找到任何明显等效的东西。

这是C++工具中的函数声明/调用

boost::uniform_int<unsigned int> randomDistOp(1, 100);


杨__羊羊
浏览 84回答 1
1回答

SMILET

该Intn方法应该给你你想要的。package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "math/rand"&nbsp; &nbsp; "time")func main() {&nbsp; &nbsp; r := rand.New(rand.NewSource(time.Now().UnixNano()))&nbsp; &nbsp; fmt.Println(1 + r.Intn(100))}这提供了 [0, n) 中的均匀随机整数。要设置不同的下限,只需将其添加到结果中即可。需要明确的是,Intn(100)将返回 100 以内但不包括 100 的数字,因此加 1 将为您提供从 1 到 100 的正确范围。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go