我正在將一個工具從 C++ 翻譯成 Go。C++ 工具使用 boost::random 庫并調(diào)用 boost::uniform_int。我想知道 Go 中是否有類似的“開箱即用”功能。如果沒有,我需要一些幫助來構(gòu)建我自己的。我梳理了 Go 的 math/rand 包,但沒有找到任何明顯等效的東西。這是C++工具中的函數(shù)聲明/調(diào)用boost::uniform_int<unsigned?int>?randomDistOp(1,?100);
1 回答

SMILET
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個贊
該Intn方法應(yīng)該給你你想要的。
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) 中的均勻隨機(jī)整數(shù)。要設(shè)置不同的下限,只需將其添加到結(jié)果中即可。需要明確的是,Intn(100)將返回 100 以內(nèi)但不包括 100 的數(shù)字,因此加 1 將為您提供從 1 到 100 的正確范圍。
- 1 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報(bào)
0/150
提交
取消