はじめに
go言語でランダムな数値を出力させる
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import "math/rand" import "time" import "fmt" func main() { rand.Seed(time.Now().Unix()) for i := 1; i <= 10; i++ { fmt.Println(rand.Intn(10)) } } |
結果
1 2 3 4 5 6 7 8 9 10 11 12 |
darkenergy:tmp sumito$ go run random.go 4 6 3 1 7 9 3 3 1 8 darkenergy:tmp sumito$ |
内訳
rand.Intnは、randパッケージに新しい乱数を生成するとき、同じ初期化 rand.NewSource(1) を使っている。
これをUnixtimeをシードとしてあたえる事で、異なる乱数を出す事ができる。
参考情報
https://qiita.com/makiuchi-d/items/9c4af327bc8502cdcdce
http://www9.plala.or.jp/sgwr-t/lib/srand.html