rand

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2022 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool

func Bool() bool

func Bytes

func Bytes(n int) []byte

func Float32

func Float32() float32

func Float64

func Float64() float64

func Int

func Int() int

func Int16

func Int16() int16

func Int31

func Int31() int32

func Int31n

func Int31n(n int32) int32

func Int32

func Int32() int32

func Int63

func Int63() int64

func Int63n

func Int63n(n int64) int64

func Int64

func Int64() int64

func Intn

func Intn(n int) int

func Perm

func Perm(n int) []int

func RandomThreshold

func RandomThreshold(seed *uint64, total uint64) uint64

func Seed

func Seed(seed int64)

func Str

func Str(length int) string

func Time

func Time() time.Time

func Uint

func Uint() uint

func Uint16

func Uint16() uint16

func Uint32

func Uint32() uint32

func Uint64

func Uint64() uint64

Types

type Candidate

type Candidate interface {
	Priority() uint64
	LessThan(other Candidate) bool
}

Interface for performing weighted deterministic random selection.

func RandomSamplingWithPriority

func RandomSamplingWithPriority(
	seed uint64, candidates []Candidate, sampleSize int, totalPriority uint64) (samples []Candidate)

Select a specified number of candidates randomly from the candidate set based on each priority. This function is deterministic and will produce the same result for the same input.

Inputs: seed - 64bit integer used for random selection. candidates - A set of candidates. The order is disregarded. sampleSize - The number of candidates to select at random. totalPriority - The exact sum of the priorities of each candidate.

Returns: samples - A randomly selected candidate from a set of candidates. NOTE that the same candidate may have been selected in duplicate.

type Rand

type Rand struct {
	tmsync.Mutex
	// contains filtered or unexported fields
}

Rand is a prng, that is seeded with OS randomness. The OS randomness is obtained from crypto/rand, however none of the provided methods are suitable for cryptographic usage. They all utilize math/rand's prng internally.

All of the methods here are suitable for concurrent use. This is achieved by using a mutex lock on all of the provided methods.

func NewRand

func NewRand() *Rand

func (*Rand) Bool

func (r *Rand) Bool() bool

Bool returns a uniformly random boolean

func (*Rand) Bytes

func (r *Rand) Bytes(n int) []byte

Bytes returns n random bytes generated from the internal prng.

func (*Rand) Float32

func (r *Rand) Float32() float32

func (*Rand) Float64

func (r *Rand) Float64() float64

func (*Rand) Int

func (r *Rand) Int() int

func (*Rand) Int16

func (r *Rand) Int16() int16

func (*Rand) Int31

func (r *Rand) Int31() int32

func (*Rand) Int31n

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

func (*Rand) Int32

func (r *Rand) Int32() int32

func (*Rand) Int63

func (r *Rand) Int63() int64

func (*Rand) Int63n

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

func (*Rand) Int64

func (r *Rand) Int64() int64

func (*Rand) Intn

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

Intn returns, as an int, a uniform pseudo-random number in the range [0, n). It panics if n <= 0.

func (*Rand) Perm

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

Perm returns a pseudo-random permutation of n integers in [0, n).

func (*Rand) Seed

func (r *Rand) Seed(seed int64)

func (*Rand) Str

func (r *Rand) Str(length int) string

Str constructs a random alphanumeric string of given length.

func (*Rand) Time

func (r *Rand) Time() time.Time

func (*Rand) Uint

func (r *Rand) Uint() uint

func (*Rand) Uint16

func (r *Rand) Uint16() uint16

func (*Rand) Uint32

func (r *Rand) Uint32() uint32

func (*Rand) Uint64

func (r *Rand) Uint64() uint64

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL