Randomisation Functions

This page documents library functions related to randomisation.

Random Integer

frandint(sstart,sstop,sseed)f_ ext{randint} left(, s_ ext{start}, s_ ext{stop}, s_ ext{seed} , ight)

Uniformly generate a random integer xx such that sstartxsstops_\text{start} \leq x \leq s_\text{stop}.

Arguments

ArgumentDescriptionDomainConstraintsNotes
sstarts_\text{start}lower boundR\mathbb{R}sstart<sstops_\text{start} < s_\text{stop}
sstops_\text{stop}upper boundR\mathbb{R}sstart<sstops_\text{start} < s_\text{stop}
sseeds_\text{seed}randomiser seedR\mathbb{R}

Return

ValueDescriptionCodomainConstraintsNotes
ω\omegarandom integerZ\mathbb{Z}sstartωsstops_\text{start} \leq \omega \leq s_\text{stop}

Usage

f_{randint}left(s_{start}, s_{stop}, s_{seed}\right)=operatorname{floor}left(s_{start}+operatorname{random}left(\right)cdotleft(left(s_{stop}+1\right)-s_{start}\right)\right)
f_{randint}left(1, 10, 0.1\right)

Implementation

frandint(sstartsstopsseed)=floor(sstart+random()((sstop+1)sstart))f_ ext{randint} left(, s_ ext{start} s_ ext{stop} s_ ext{seed} , ight) = operatorname{floor}left( s_{start}+operatorname{random}left( ight)cdotleft(left(s_{stop}+1 ight)-s_{start} ight) ight)

Notes

  • sstop<sstarts_\text{stop} < s_\text{start} results in unexpected behaviour due to the use of floor()\operatorname{floor}() and sstop+1s_\text{stop} + 1.

Dependencies

None

Random Integer Scalar

frandintscale(sseed)f_ ext{randintscale} left(, s_ ext{seed} , ight)

Uniformly pick a random number from {1,0,1}\{ -1, 0, 1 \}.

Arguments

ArgumentDescriptionDomainConstraintsNotes
sseeds_\text{seed}randomiser seedR\mathbb{R}

Return

ValueDescriptionCodomainConstraintsNotes
ω\omegarandom integerZ\mathbb{Z}ω{1,0,1}\omega \in \{ -1, 0, 1 \}

Usage

f_{randintscale}left(s_{seed}\right)=operatorname{floor}left(3cdotoperatorname{random}left(\right)-1\right)
f_{randintscale}left(e\right)
f_{randintscale}left(e^{2}\right)
f_{randintscale}left(e^{3}\right)

Implementation

frandintscale(sseed)=floor(3random()1)f_ ext{randintscale} left(, s_ ext{seed} , ight) = operatorname{floor}left( 3cdotoperatorname{random}left( ight)-1 ight)

Dependencies

None