Package rand
import "rand"
Package rand implements pseudo-random number generators.
Package files
exp.go normal.go rand.go rng.go zipf.gofunc ExpFloat64
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). To produce a distribution with a different rate parameter, callers can adjust the output using:
sample = ExpFloat64() / desiredRateParameter
func Float32
func Float32() float32
Float32 returns, as a float32, a pseudo-random number in [0.0,1.0).
func Float64
func Float64() float64
Float64 returns, as a float64, a pseudo-random number in [0.0,1.0).
func Int
func Int() int
Int returns a non-negative pseudo-random int.
func Int31
func Int31() int32
Int31 returns a non-negative pseudo-random 31-bit integer as an int32.
func Int31n
func Int31n(n int32) int32
Int31n returns, as an int32, a non-negative pseudo-random number in [0,n).
func Int63
func Int63() int64
Int63 returns a non-negative pseudo-random 63-bit integer as an int64.
func Int63n
func Int63n(n int64) int64
Int63n returns, as an int64, a non-negative pseudo-random number in [0,n).
func Intn
func Intn(n int) int
Intn returns, as an int, a non-negative pseudo-random number in [0,n).
func NormFloat64
func 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 Perm
func Perm(n int) []int
Perm returns, as a slice of n ints, a pseudo-random permutation of the integers [0,n).
func Seed
func Seed(seed int64)
Seed uses the provided seed value to initialize the generator to a deterministic state.
func Uint32
func Uint32() uint32
Uint32 returns a pseudo-random 32-bit value as a uint32.
type Rand
A Rand is a source of random numbers.
type Rand struct {
// contains filtered or unexported fields
}
func New
func New(src Source) *Rand
New returns a new Rand that uses random values from src to generate other random values.
func (*Rand) ExpFloat64
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 (*Rand) Float32
func (r *Rand) Float32() float32
Float32 returns, as a float32, a pseudo-random number in [0.0,1.0).
func (*Rand) Float64
func (r *Rand) Float64() float64
Float64 returns, as a float64, a pseudo-random number in [0.0,1.0).
func (*Rand) Int
func (r *Rand) Int() int
Int returns a non-negative pseudo-random int.
func (*Rand) Int31
func (r *Rand) Int31() int32
Int31 returns a non-negative pseudo-random 31-bit integer as an int32.
func (*Rand) Int31n
func (r *Rand) Int31n(n int32) int32
Int31n returns, as an int32, a non-negative pseudo-random number in [0,n).
func (*Rand) Int63
func (r *Rand) Int63() int64
Int63 returns a non-negative pseudo-random 63-bit integer as an int64.
func (*Rand) Int63n
func (r *Rand) Int63n(n int64) int64
Int63n returns, as an int64, a non-negative pseudo-random number in [0,n).
func (*Rand) Intn
func (r *Rand) Intn(n int) int
Intn returns, as an int, a non-negative pseudo-random number in [0,n).
func (*Rand) NormFloat64
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 (*Rand) Perm
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 (*Rand) Seed
func (r *Rand) Seed(seed int64)
Seed uses the provided seed value to initialize the generator to a deterministic state.
func (*Rand) Uint32
func (r *Rand) Uint32() uint32
Uint32 returns a pseudo-random 32-bit value as a uint32.
type Source
A Source represents a source of uniformly-distributed pseudo-random int64 values in the range [0, 1<<63).
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.
type Zipf
A Zipf generates Zipf distributed variates.
type Zipf struct {
// contains filtered or unexported fields
}
func NewZipf
func NewZipf(r *Rand, s float64, v float64, imax uint64) *Zipf
NewZipf returns a Zipf generating variates p(k) on [0, imax] proportional to (v+k)**(-s) where s>1 and k>=0, and v>=1.
func (*Zipf) Uint64
func (z *Zipf) Uint64() uint64
Uint64 returns a value drawn from the Zipf distributed described by the Zipf object.