Package rand

import "math/rand"
Overview
Index
Examples

Overview ▾

包rand实现伪随机数生成器.

随机数由源生成. 诸如Float64和Int之类的顶级函数使用默认的共享Source,该默认Source在每次运行程序时都会生成确定的值序列. 如果每次运行需要不同的行为,请使用种子函数初始化默认的源. 默认的Source可安全地供多个goroutine并发使用,但不是由NewSource创建的Source.

该软件包的整个文档中都使用数学间隔符号,例如[0,n).

有关适合于对安全敏感的工作的随机数,请参阅crypto / rand软件包.

Example

Magic 8-Ball says: As I see it yes

示例(兰特)

本示例说明了* Rand上每种方法的用法. 全局功能的使用是相同的,没有接收器.

Float32     0.2635776           0.6358173           0.6718283
Float64     0.628605430454327   0.4504798828572669  0.9562755949377957
ExpFloat64  0.3362240648200941  1.4256072328483647  0.24354758816173044
NormFloat64 0.17233959114940064 1.577014951434847   0.04259129641113857
Int31       1501292890          1486668269          182840835
Int63       3546343826724305832 5724354148158589552 5239846799706671610
Uint32      2760229429          296659907           1922395059
Intn(10)    1                   2                   5
Int31n(10)  4                   7                   8
Int63n(10)  7                   6                   3
Perm        [1 4 2 3 0]         [4 2 1 3 0]         [1 2 4 0 3]

func ExpFloat64

func ExpFloat64() float64

ExpFloat64返回范围(0,+ math.MaxFloat64]范围内的指数分布float64,其指数分布(速率参数(lambda)为1,均值是默认值Source的1 / lambda(1)).不同的费率参数,呼叫者可以使用以下方法调整输出:

sample = ExpFloat64() / desiredRateParameter

func Float32

func Float32() float32

Float32从默认Source返回[0.0,1.0)中的伪随机数作为float32.

func Float64

func Float64() float64

Float64从默认Source返回[0.0,1.0)中的伪随机数作为float64.

func Int

func Int() int

Int从默认Source返回一个非负伪随机Int.

func Int31

func Int31() int32

Int31从默认Source返回一个非负的伪随机31位整数作为int32.

func Int31n

func Int31n(n int32) int32

Int31n从默认Source返回[0,n)中的非负伪随机数作为int32. 如果n <= 0,则表示恐慌.

func Int63

func Int63() int64

Int63从默认Source返回一个非负的伪随机63位整数作为int64.

func Int63n

func Int63n(n int64) int64

Int63n从默认Source返回[0,n)中的非负伪随机数作为int64. 如果n <= 0,则表示恐慌.

func Intn

func Intn(n int) int

Intn从默认Source返回[0,n)中的非负伪随机数作为int. 如果n <= 0,则表示恐慌.

Example

42
76
30

func NormFloat64

func NormFloat64() float64

NormFloat64从默认Source返回具有标准正态分布(均值= 0,stddev = 1)的[-math.MaxFloat64,+ math.MaxFloat64]范围内的正态分布float64. 要产生不同的正态分布,调用者可以使用以下方法调整输出:

sample = NormFloat64() * desiredStdDev + desiredMean

func Perm

func Perm(n int) []int

彼尔姆以n个int的切片形式返回默认Source中整数[0,n)的伪随机排列.

Example

1
2
0

func Read 1.6

func Read(p []byte) (n int, err error)

读取从默认源生成len(p)个随机字节,并将它们写入p. 它总是返回len(p)和nil错误. 与Rand.Read方法不同,Read可以安全地并发使用.

func Seed

func Seed(seed int64)

Seed使用提供的种子值将默认Source初始化为确定性状态. 如果未调用Seed,则生成器的行为就像由Seed(1)设置种子一样. 除以2 ^ 31-1时具有相同余数的种子值会生成相同的伪随机序列. 与Rand.Seed方法不同,种子可以安全地同时使用.

func Shuffle 1.10

func Shuffle(n int, swap func(i, j int))

使用默认Source随机伪随机化元素的顺序. n是元素数. 如果n <0,则进行混乱处理.swap交换索引为i和j的元素.

Example

[mouth my the of runs corners from ink]

示例(SlicesInUnison)

C: 3
D: 4
A: 1
E: 5
B: 2

func Uint32

func Uint32() uint32

Uint32从默认Source返回一个伪随机的32位值作为uint32.

func Uint64 1.8

func Uint64() uint64

Uint64从默认Source返回一个伪随机的64位值作为uint64.

type Rand

兰德是随机数的来源.

type Rand struct {
    // contains filtered or unexported fields
}

func New

func New(src Source) *Rand

New返回一个新的Rand,它使用src中的随机值生成其他随机值.

func (*Rand) ExpFloat64

func (r *Rand) ExpFloat64() float64

ExpFloat64返回范围为(0,+ math.MaxFloat64]范围内的指数分布float64,其指数分布的比率参数(lambda)为1,平均值为1 /λ(1).要生成具有不同比率参数的分布,呼叫者可以使用以下方法调整输出:

sample = ExpFloat64() / desiredRateParameter

func (*Rand) Float32

func (r *Rand) Float32() float32

Float32将[0.0,1.0)中的伪随机数作为float32返回.

func (*Rand) Float64

func (r *Rand) Float64() float64

Float64将[0.0,1.0)中的伪随机数作为float64返回.

func (*Rand) Int

func (r *Rand) Int() int

Int返回非负的伪随机int.

func (*Rand) Int31

func (r *Rand) Int31() int32

Int31返回一个非负的伪随机31位整数作为int32.

func (*Rand) Int31n

func (r *Rand) Int31n(n int32) int32

Int31n返回[0,n)中的非负伪随机数作为int32. 如果n <= 0,则表示恐慌.

func (*Rand) Int63

func (r *Rand) Int63() int64

Int63返回一个非负的伪随机63位整数作为int64.

func (*Rand) Int63n

func (r *Rand) Int63n(n int64) int64

Int63n将[0,n)中的非负伪随机数作为int64返回. 如果n <= 0,则表示恐慌.

func (*Rand) Intn

func (r *Rand) Intn(n int) int

Intn以int形式返回[0,n)中的非负伪随机数. 如果n <= 0,则表示恐慌.

func (*Rand) NormFloat64

func (r *Rand) NormFloat64() float64

NormFloat64返回-math.MaxFloat64到+ math.MaxFloat64(含)范围内的正态分布float64,具有标准正态分布(均值= 0,stddev = 1). 要产生不同的正态分布,调用者可以使用以下方法调整输出:

sample = NormFloat64() * desiredStdDev + desiredMean

func (*Rand) Perm

func (r *Rand) Perm(n int) []int

彼尔姆作为n个整数的切片返回整数[0,n)的伪随机排列.

func (*Rand) Read 1.6

func (r *Rand) Read(p []byte) (n int, err error)

读取生成len(p)个随机字节并将其写入p. 它总是返回len(p)和nil错误. 不应与任何其他Rand方法同时调用Read.

func (*Rand) Seed

func (r *Rand) Seed(seed int64)

种子使用提供的种子值将生成器初始化为确定性状态. 种子不应与任何其他Rand方法同时调用.

func (*Rand) Shuffle 1.10

func (r *Rand) Shuffle(n int, swap func(i, j int))

随机伪随机化元素的顺序. n是元素数. 如果n <0,则进行混乱处理.swap交换索引为i和j的元素.

func (*Rand) Uint32

func (r *Rand) Uint32() uint32

Uint32返回一个伪随机的32位值作为uint32.

func (*Rand) Uint64 1.8

func (r *Rand) Uint64() uint64

Uint64返回一个伪随机的64位值作为uint64.

type Source

Source表示在[0,1 << 63)范围内均匀分布的伪随机int64值的源.

type Source interface {
    Int63() int64
    Seed(seed int64)
}

func NewSource

func NewSource(seed int64) Source

NewSource returns a new pseudo-random Source seeded with the given value. Unlike the default Source used by top-level functions, this source is not safe for concurrent use by multiple goroutines.

type Source64 1.8

Source64是一个Source,它也可以直接生成范围为[0,1 << 64)的均匀分布的伪随机uint64值. 如果Rand r的基础Source实现了Source64,则r.Uint64返回对s.Uint64的一次调用的结果,而不是对s.Int63的两次调用.

type Source64 interface {
    Source
    Uint64() uint64
}

type Zipf

Zipf生成Zipf分布变量.

type Zipf struct {
    // contains filtered or unexported fields
}

func NewZipf

func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf

NewZipf返回一个Zipf变量生成器. 生成器生成值k∈[0,imax],使得P(k)与(v + k)**(-s)成比例. 要求:s> 1和v> = 1.

func (*Zipf) Uint64

func (z *Zipf) Uint64() uint64

Uint64返回从Zipf对象描述的Zipf分布中得出的值.

by  ICOPY.SITE