func ExpFloat64() float64
ExpFloat64 returns an exponentially distributed float64 in the range (0, +math.MaxFloat64] with an exponential distribution whose rate parameter (lambda) is 1 and whose mean is 1/lambda (1) from the default Source. To produce a distribution with a different rate parameter, callers can adjust the output using:
sample = ExpFloat64() / desiredRateParameter
func Float32() float32
Float32 returns, as a float32, a pseudo-random number in [0.0,1.0) from the default Source.
func Float64() float64
Float64 returns, as a float64, a pseudo-random number in [0.0,1.0) from the default Source.
func Int() int
Int returns a non-negative pseudo-random int from the default Source.
func Int31() int32
Int31 returns a non-negative pseudo-random 31-bit integer as an int32 from the default Source.
func Int31n(n int32) int32
Int31n returns, as an int32, a non-negative pseudo-random number in [0,n) from the default Source. It panics if n <= 0.
func Int63() int64
Int63 returns a non-negative pseudo-random 63-bit integer as an int64 from the default Source.
func Int63n(n int64) int64
Int63n returns, as an int64, a non-negative pseudo-random number in [0,n) from the default Source. It panics if n <= 0.
func Intn(n int) int
Intn returns, as an int, a non-negative pseudo-random number in [0,n) from the default Source. It panics if n <= 0.
func NormFloat64() float64
NormFloat64 returns a normally distributed float64 in the range [-math.MaxFloat64, +math.MaxFloat64] with standard normal distribution (mean = 0, stddev = 1) from the default Source. To produce a different normal distribution, callers can adjust the output using:
sample = NormFloat64() * desiredStdDev + desiredMean
func Perm(n int) []int
Perm returns, as a slice of n ints, a pseudo-random permutation of the integers [0,n) from the default Source.
func Read(p []byte) (n int, err error)
Read generates len(p) random bytes from the default Source and writes them into p. It always returns len(p) and a nil error. Read, unlike the Rand.Read method, is safe for concurrent use.
func Seed(seed uint64)
Seed uses the provided seed value to initialize the default Source to a deterministic state. If Seed is not called, the generator behaves as if seeded by Seed(1). Seed, unlike the Rand.Seed method, is safe for concurrent use.
func Shuffle(n int, swap func(i, j int))
Shuffle pseudo-randomizes the order of elements using the default Source. n is the number of elements. Shuffle panics if n < 0. swap swaps the elements with indexes i and j.
▹ Example
▹ Example (SlicesInUnison)
func Uint32() uint32
Uint32 returns a pseudo-random 32-bit value as a uint32 from the default Source.
func Uint64() uint64
Uint64 returns a pseudo-random 64-bit value as a uint64 from the default Source.
LockedSource is an implementation of Source that is concurrency-safe. A Rand using a LockedSource is safe for concurrent use.
The zero value of LockedSource is valid, but should be seeded before use.
type LockedSource struct {
// contains filtered or unexported fields
}
▹ Example
func (s *LockedSource) Read(p []byte, readVal *uint64, readPos *int8) (n int, err error)
Read implements Read for a LockedSource.
func (s *LockedSource) Seed(seed uint64)
func (s *LockedSource) Uint64() (n uint64)
PCGSource is an implementation of a 64-bit permuted congruential generator as defined in
PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation Melissa E. O’Neill, Harvey Mudd College http://www.pcg-random.org/pdf/toms-oneill-pcg-family-v1.02.pdf
The generator here is the congruential generator PCG XSL RR 128/64 (LCG) as found in the software available at http://www.pcg-random.org/. It has period 2^128 with 128 bits of state, producing 64-bit values. Is state is represented by two uint64 words.
type PCGSource struct {
// contains filtered or unexported fields
}
func (pcg *PCGSource) MarshalBinary() ([]byte, error)
MarshalBinary returns the binary representation of the current state of the generator.
func (pcg *PCGSource) Seed(seed uint64)
Seed uses the provided seed value to initialize the generator to a deterministic state.
func (pcg *PCGSource) Uint64() uint64
Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.
func (pcg *PCGSource) UnmarshalBinary(data []byte) error
UnmarshalBinary sets the state of the generator to the state represented in data.
A Rand is a source of random numbers.
type Rand struct {
// contains filtered or unexported fields
}
func New(src Source) *Rand
New returns a new Rand that uses random values from src to generate other random values.
func (r *Rand) ExpFloat64() float64
ExpFloat64 returns an exponentially distributed float64 in the range (0, +math.MaxFloat64] with an exponential distribution whose rate parameter (lambda) is 1 and whose mean is 1/lambda (1). To produce a distribution with a different rate parameter, callers can adjust the output using:
sample = ExpFloat64() / desiredRateParameter
func (r *Rand) Float32() float32
Float32 returns, as a float32, a pseudo-random number in [0.0,1.0).
func (r *Rand) Float64() float64
Float64 returns, as a float64, a pseudo-random number in [0.0,1.0).
func (r *Rand) Int() int
Int returns a non-negative pseudo-random int.
func (r *Rand) Int31() int32
Int31 returns a non-negative pseudo-random 31-bit integer as an int32.
func (r *Rand) Int31n(n int32) int32
Int31n returns, as an int32, a non-negative pseudo-random number in [0,n). It panics if n <= 0.
func (r *Rand) Int63() int64
Int63 returns a non-negative pseudo-random 63-bit integer as an int64.
func (r *Rand) Int63n(n int64) int64
Int63n returns, as an int64, a non-negative pseudo-random number in [0,n). It panics if n <= 0.
func (r *Rand) Intn(n int) int
Intn returns, as an int, a non-negative pseudo-random number in [0,n). It panics if n <= 0.
func (r *Rand) NormFloat64() float64
NormFloat64 returns a normally distributed float64 in the range [-math.MaxFloat64, +math.MaxFloat64] with standard normal distribution (mean = 0, stddev = 1). To produce a different normal distribution, callers can adjust the output using:
sample = NormFloat64() * desiredStdDev + desiredMean
func (r *Rand) Perm(n int) []int
Perm returns, as a slice of n ints, a pseudo-random permutation of the integers [0,n).
func (r *Rand) Read(p []byte) (n int, err error)
Read generates len(p) random bytes and writes them into p. It always returns len(p) and a nil error. Read should not be called concurrently with any other Rand method unless the underlying source is a LockedSource.
func (r *Rand) Seed(seed uint64)
Seed uses the provided seed value to initialize the generator to a deterministic state. Seed should not be called concurrently with any other Rand method.
func (r *Rand) Shuffle(n int, swap func(i, j int))
Shuffle pseudo-randomizes the order of elements. n is the number of elements. Shuffle panics if n < 0. swap swaps the elements with indexes i and j.
func (r *Rand) Uint32() uint32
Uint32 returns a pseudo-random 32-bit value as a uint32.
func (r *Rand) Uint64() uint64
Uint64 returns a pseudo-random 64-bit integer as a uint64.
func (r *Rand) Uint64n(n uint64) uint64
Uint64n returns, as a uint64, a pseudo-random number in [0,n). It is guaranteed more uniform than taking a Source value mod n for any n that is not a power of 2.
A Source represents a source of uniformly-distributed pseudo-random int64 values in the range [0, 1<<64).
type Source interface { Uint64() uint64 Seed(seed uint64) }
func NewSource(seed uint64) Source
NewSource returns a new pseudo-random Source seeded with the given value.
A Zipf generates Zipf distributed variates.
type Zipf struct {
// contains filtered or unexported fields
}
func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf
NewZipf returns a Zipf variate generator. The generator generates values k ∈ [0, imax] such that P(k) is proportional to (v + k) ** (-s). Requirements: s > 1 and v >= 1.
func (z *Zipf) Uint64() uint64
Uint64 returns a value drawn from the Zipf distribution described by the Zipf object.