一、参数说明
伪随机数生成器函数(int带范围)
Intn(n int) – 它返回 [0,n] 中的非负伪随机数
Int31n(n int32) – 它返回 [0,n] 中的非负伪随机数,但返回 int32
Int63n(n int64) – 它返回 [0,n] 中的非负伪随机数,但返回 int64
伪随机数生成器函数(int不带范围)
Int() – 返回一个非负伪随机 int
Int31() – 返回一个非负伪随机 31 位整数作为 int32
Int63() – 返回一个非负伪随机 63 位整数作为 int64
Uint32() – 返回伪随机 32 位值作为 uint32
Uint64() – 返回伪随机 64 位值作为 uint64
伪随机数生成器函数(浮点数)
Float64() – 以 float64 的形式返回 [0.0,1.0] 中的伪随机数
Float32() – 以 float32 的形式返回 [0.0,1.0] 中的伪随机数
二、生成随机数
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().Unix())
//Pseudo Random Number Generator Functions with range
//1. Intn(n int)
fmt.Printf("Intn: %d\n", rand.Intn(10))
//2. Int31n(n int32)
fmt.Printf("Int31n: %d\n", rand.Int31n(10))
//3. Int64n(n int32)
fmt.Printf("Int64n: %d\n", rand.Int63n(10))
//Pseudo Random Number Generator Functions without range.
//1. Int()
fmt.Printf("Int: %d\n", rand.Int())
//2. Int31()
fmt.Printf("Int31: %d\n", rand.Int31())
//3. Int63()
fmt.Printf("Int63: %d\n", rand.Int63())
//4. Uint32()
fmt.Printf("Uint32: %d\n", rand.Uint32())
//4. Uint64()
fmt.Printf("Uint64: %d\n", rand.Uint64())
//Pseudo Random Number Generator Functions with range for floats
//1. Float64()
fmt.Printf("Float64: %f\n", rand.Float64())
//2. Float32()
fmt.Printf("Float32: %f\n", rand.Float32())
}
三、输出
Intn: 9
Int31n: 4
Int64n: 4
Int: 6567086139449890598
Int31: 402632083
Int63: 428924242891364663
Uint32: 1991553101
Uint64: 825780166485441015
Float64: 0.683701
Float32: 0.382141
参考:
https://golangbyexample.com/generate-random-number-golang/