参考网址
blog.csdn.net/weixin_4267…
简介
import "math/rand"
rand模块的作用是生成随机数,来满足一些代码中的需求。
math/rand模块中的函数有哪些
rand.Seed()
rand.Seed(time.Now().UnixNano())
因为我们都知道,当随机数种子不同的时候,每次产生的随机数也是不同的。
有的时候,我们需要每次产生的随机数都是一样的,有的时候我们需要每次产生的随机数是不一样的。
所以,为了达成我们的这个目的,我们可以指定一个固定的随机数种子。
如果我们需要每次的随机数都是一样的,那么我们固定一个数就行了,比如rand.Seed(100)。
如果我们希望每次产生的随机数都不一样,那么我们每次指定的种子不同就行了。
我们一般都是用时间的纳秒来代替种子。
rand.Seed(time.Now().UnixNano())
package main
import (
"fmt"
"math/rand"
"time"
)
func test5() {
rand.Seed(1)
fmt.Println(rand.Intn(10), rand.Intn(10), rand.Intn(10), rand.Intn(10))
}
func test6() {
rand.Seed(time.Now().UnixNano())
fmt.Println(rand.Intn(10), rand.Intn(10), rand.Intn(10), rand.Intn(10))
}
func main() {
test5()
test6()
}
rand.Int()
返回⼀个⾮负的伪随机int值。
rand.Intn(n)
例如获取0-n之间的随机数,左闭右开
package main
import "math.rand"
import "fmt"
func main() {
rand.Seed(123)
a := rand.Intn(100)
fmt.Println(a)
}
rand.Float64()
返回⼀个取值范围在[0.0, 1.0)的伪随机float64值。
左开右闭
总结
1.按类型随机类:
func (r *Rand) Int() int
func (r *Rand) Int31() int32
func (r *Rand) Int63() int64
func (r *Rand) Uint32() uint32
func (r *Rand) Float32() float32
func (r *Rand) Float64() float64
2.指定随机范围类:
func (r *Rand) Intn(n int) int
func (r *Rand) Int31n(n int32) int32
func (r *Rand) Int63n(n int64) int64