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

Is there Go function comparable to boost::uniform_int?

本文关键字:相媲美 Go 函数 int uniform boost 有没有      更新时间:2023-10-16

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

我已经梳理了 Go 的数学/兰德包,但没有找到任何明显等效的东西。

这是 boost 文档的链接

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

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

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 的数字,因此添加 1 将为您提供从 1 到 100 的适当范围。