預設的 rand.Intn () 生成的是偽隨機數

Rachel發表於2019-03-23

rand.Intn() 函式是個偽隨機函式, 不管執行多少次都只會返回同樣的隨機數, 因為它預設的資源就是單一值, 所以必須呼叫 rand.Seed(), 並且傳入一個變化的值作為引數, 如 time.Now().UnixNano() , 就是可以生成時刻變化的值.

package main

import ("fmt"
        "math/rand"
        "time")

func main() {
    // 初始化隨機數的資源庫, 如果不執行這行, 不管執行多少次都返回同樣的值
    rand.Seed(time.Now().UnixNano())
    fmt.Println("A number from 1-100", rand.Intn(81))
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章