Documentation
¶
Overview ¶
Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work.
Random numbers are generated by a Source, usually wrapped in a Rand. Both types should be used by a single thread at a time: sharing among multiple threads requires some kind of synchronization.
Top-level functions, such as Float64 and IntN, use a global Rand with a PCG source seeded by runtime.Seed.
This package's outputs might be easily predictable regardless of how it's seeded. For random numbers suitable for security-sensitive work, see the crypto/crand package.
Based on the math/rand/v2 package.
Index ¶
- Variables
- func Float32() float32
- func Float64() float64
- func Int() int
- func Int32() int32
- func Int32N(n int32) int32
- func Int64() int64
- func Int64N(n int64) int64
- func IntN(n int) int
- func Uint() uint
- func Uint32() uint32
- func Uint32N(n uint32) uint32
- func Uint64() uint64
- func Uint64N(n uint64) uint64
- func UintN(n uint) uint
- type PCG
- type Rand
- func (r *Rand) Float32() float32
- func (r *Rand) Float64() float64
- func (r *Rand) Int() int
- func (r *Rand) Int32() int32
- func (r *Rand) Int32N(n int32) int32
- func (r *Rand) Int64() int64
- func (r *Rand) Int64N(n int64) int64
- func (r *Rand) IntN(n int) int
- func (r *Rand) Uint() uint
- func (r *Rand) Uint32() uint32
- func (r *Rand) Uint32N(n uint32) uint32
- func (r *Rand) Uint64() uint64
- func (r *Rand) Uint64N(n uint64) uint64
- func (r *Rand) UintN(n uint) uint
- type Source
Constants ¶
This section is empty.
Variables ¶
var ErrUnmarshalPCG = errors.New("rand: invalid PCG encoding")
Functions ¶
func Float32 ¶
func Float32() float32
Float32 returns, as a float32, a pseudo-random number in the half-open interval [0.0,1.0) from the default Source.
func Float64 ¶
func Float64() float64
Float64 returns, as a float64, a pseudo-random number in the half-open interval [0.0,1.0) from the default Source.
func Int32 ¶
func Int32() int32
Int32 returns a non-negative pseudo-random 31-bit integer as an int32 from the default Source.
func Int32N ¶
Int32N returns, as an int32, a pseudo-random number in the half-open interval [0,n) from the default Source. It panics if n <= 0.
func Int64 ¶
func Int64() int64
Int64 returns a non-negative pseudo-random 63-bit integer as an int64 from the default Source.
func Int64N ¶
Int64N returns, as an int64, a pseudo-random number in the half-open interval [0,n) from the default Source. It panics if n <= 0.
func IntN ¶
IntN returns, as an int, a pseudo-random number in the half-open interval [0,n) from the default Source. It panics if n <= 0.
func Uint32 ¶
func Uint32() uint32
Uint32 returns a pseudo-random 32-bit value as a uint32 from the default Source.
func Uint32N ¶
Uint32N returns, as a uint32, a pseudo-random number in the half-open interval [0,n) from the default Source. It panics if n == 0.
func Uint64 ¶
func Uint64() uint64
Uint64 returns a pseudo-random 64-bit value as a uint64 from the default Source.
Types ¶
type PCG ¶
type PCG struct {
// contains filtered or unexported fields
}
A PCG is a PCG generator with 128 bits of internal state. A zero PCG is equivalent to NewPCG(0, 0).
func (*PCG) AppendBinary ¶
AppendBinary implements the encoding.BinaryAppender interface. Requires at least 20 bytes of spare capacity in b.
func (*PCG) MarshalBinary ¶
MarshalBinary implements the encoding.BinaryMarshaler interface. Requires a 20-byte buffer in b.
func (*PCG) UnmarshalBinary ¶
UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
type Rand ¶
type Rand struct {
// contains filtered or unexported fields
}
A Rand is a source of random numbers.
func (*Rand) Float32 ¶
Float32 returns, as a float32, a pseudo-random number in the half-open interval [0.0,1.0).
func (*Rand) Float64 ¶
Float64 returns, as a float64, a pseudo-random number in the half-open interval [0.0,1.0).
func (*Rand) Int32N ¶
Int32N returns, as an int32, a non-negative pseudo-random number in the half-open interval [0,n). It panics if n <= 0.
func (*Rand) Int64N ¶
Int64N returns, as an int64, a non-negative pseudo-random number in the half-open interval [0,n). It panics if n <= 0.
func (*Rand) IntN ¶
IntN returns, as an int, a non-negative pseudo-random number in the half-open interval [0,n). It panics if n <= 0.
func (*Rand) Uint32N ¶
Uint32N returns, as a uint32, a non-negative pseudo-random number in the half-open interval [0,n). It panics if n == 0.