Golang で乱数を生成するには?
Go言語では、math/randパッケージを使用して乱数を生成できます。以下に簡単な例を示します。
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
// 设置随机数种子
rand.Seed(time.Now().UnixNano())
// 生成一个范围在0到100之间的随机整数
randomInt := rand.Intn(101)
fmt.Println(randomInt)
// 生成一个范围在0到1之间的随机浮点数
randomFloat := rand.Float64()
fmt.Println(randomFloat)
}
上記のサンプルでは、最初にrand.Seed()関数を使って乱数のシード値を設定し、time.Now().UnixNano()を用いて現在時刻をナノ秒単位で取得することで、毎回実行時に異なる乱数列を生み出すようにしています。
次に、ランダムな数値を100以下に発行する`rand.Intn()`関数を使い、`fmt.Println()`関数で発行しました。
次に、rand.Float64() 関数を使用して 0 から 1 までの範囲のランダム浮動小数点数を生成し、同じ fmt.Println() 関数を使用してこれをプリントします。
上記のコードを実行すると、次のような出力が得られます。
87
0.7853981633974483