go言語でランダムな数値を出力させる

はじめに

go言語でランダムな数値を出力させる

コード

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))
    }
}

結果

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

golang の新書