Go隨機數的使用

2021-08-15 18:22:17 字數 1899 閱讀 4043

隨機數使用比較廣泛,例如,**、均衡等等。

下面簡單說明其使用方法。

package main

import (

"log"

"math/rand"

)func main()

output:

$ ./t

2018/02/24 11:40:58 2

$ ./t

2018/02/24 11:40:59 2

$ ./t

2018/02/24 11:41:00 2

$ ./t

2018/02/24 11:41:01 2

$ ./t

2018/02/24 11:41:02 2

$ ./t

2018/02/24 11:41:02 2

$ ./t

2018/02/24 11:41:03 2

$ ./t

2018/02/24 11:41:04 2

其中

rand.intn(n int)

返回[0,n)之間的隨機數

每次執行時得到的結果都是一樣的。

沒有呼叫seed時, 預設使用seed(1)。種子不變,產生的隨機數就會不變。

package main

import (

"log"

"math/rand"

"time"

)func main()

output

>

$ ./t

2018/02/24 11:43:29 0

$ ./t

2018/02/24 11:43:31 2

$ ./t

2018/02/24 11:43:33 1

$ ./t

2018/02/24 11:43:34 2

$ ./t

2018/02/24 11:43:35 0

$ ./t

2018/02/24 11:43:36 2

$ ./t

2018/02/24 11:43:37 1

$ ./t

2018/02/24 11:43:38 1

$ ./t

2018/02/24 11:43:39 2

$ ./t

2018/02/24 11:43:40 2

$ ./t

2018/02/24 11:43:44 0

使用時間作為種子,輸出完全隨機數。

package main

import

( "log"

"math/rand"

"time"

)func

main

()

output:

$ ./t

2018/02/24 12:04:27 [0 1 2]

$ ./t

2018/02/24 12:04:28 [0 2 1]

$ ./t

2018/02/24 12:04:30 [0 2 1]

$ ./t

2018/02/24 12:04:32 [0 1 2]

perm(n)產生[0,n)的偽隨機序列。

隨機種子(random seed)是計算機專業術語,一種以隨機數作為物件的以真隨機數(種子)為初始條件的隨機數。一般計算機的隨機數都是偽隨機數,以乙個真隨機數(種子)作為初始條件,然後用一定的演算法不停迭代產生隨機數。

種子一般使用當前的系統時間,這是完全隨機的。

Go生成隨機數

設定時間種子使用time包 生成隨機數需要math rand包 列印輸出使用fmt包 不設定時間種子的話,每次生成的rand值相同 package main import fmt import math rand import time func generate randnum int func ...

go生成隨機數

先看官方文件 func rand intn func r rand intn n int int返回乙個取值範圍在 0,n 的偽隨機int值,如果n 0會panic。func rand seed func r rand seed seed int64 使用給定的seed來初始化生成器到乙個確定的狀態...

GO獲取隨機數

使用的 math rand 包。基本隨機數 a rand.int b rand.intn 100 生成0 99之間的隨機數 fmt.println a fmt.println b 可以生成隨機數,但是數值不會變。生成可變隨機數 將時間戳設定成種子數 rand.seed time.now unixna...