Go言語-randパッケージ


randパッケージ

プログラミング基本からGoの理解を文字におこして行こうと思います!

処理結果をランダムに表示

package main
import "main/rand"  //「fmt」と同様""で囲む
...
}

ランダムな数を扱うためのmath/randというパッケージ

乱数の生成

package main
import "fmt"
import "main/rand"

func main() {
  fmt.Println(rand.lntn(10)) //0~9の乱数を生成
  fmt.Println(rand.lntn(10)) //0~9の乱数を生成
}

//コンソール
1
8

「rand.Intn(10)」と書くことで、0~9までの10個の整数の乱数を生成できる

乱数の注意点

package main
import "fmt"
import "main/rand"

func main() {
  for i := 1; i <= 5; i ++ {
    fmt.Println(rand.lntn(10))
  }
}

//コンソール
[1回目]   [2回目]
 1         1 
 5         5
 3         3
 4         4
 8         8

単に「rand.Intn(10)」のように呼び出すだけでは
実行する度に、毎回同じ乱数が生成

完全な乱数を生成する

...
import "main/rand"
import "time"  //timeパッケージのインポート

func main() {
  rand.Seed(time.Now().Unix())  //完全な乱数を生成するコード
  for i := 1; i <= 5; i ++ {
    fmt.Println(rand.lntn(10))
  }
}

//コンソール
[1回目]   [2回目]
 1         2 
 5         6
 3         1
 4         9
 8         8

完全な乱数を生成するために
「rand.Seed(time.Now().Unix())」という1行を追加する必要がある
このコードを使うためには「time」パッケージをインポートする必要がある