go 随机数是重复的
生活随笔
收集整理的這篇文章主要介紹了
go 随机数是重复的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡言
1. go語言的隨機數是最簡單的模型,也就是從既定的數字中篩選符合條件的數字,毫無隨機性可言
2. 想要真隨機的話需要加上隨機種子,這樣其實也不是真正的隨機,還是從既定數字中往后面篩選,只是開始拿數字的起點換了而已
?
實驗如下圖(可以看到無隨機種子時,三次運行結果完全一樣。加了隨機種子后才變得隨機)
?
代碼如下
package main import ("fmt""math/rand""time" ) // 無隨機種子 func NoSrand() {fmt.Println("無隨機種子")a := rand.Int31n(100)b := rand.Int31n(100)c := rand.Int31n(100)d := rand.Int31n(100)fmt.Printf("a=%v, b=%v, c=%v,d=%v \n", a, b, c, d) } // 有隨機種子的 func Srand() {fmt.Println("有隨機種子")rand.Seed(time.Now().UnixNano())a := rand.Int31n(100)b := rand.Int31n(100)c := rand.Int31n(100)d := rand.Int31n(100)fmt.Printf("a=%v, b=%v, c=%v,d=%v \n", a, b, c, d) } func main() {// 無隨機種子的NoSrand()// 有隨機種子的Srand() }?
總結
以上是生活随笔為你收集整理的go 随机数是重复的的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu修改mysql的绑定端口
- 下一篇: 真正理解红黑树,真正的