This version is out of date, covering development from v5.0.0 to v5.12.2. It is maintained here only for inbound reference links from elsewhere.

Jump to the current version of aTbRef.

Tinderbox Icon

rand()


Operator Type: 

Operator Scope of Action: 

Operator Purpose: 

Operator First Added: 

Operator Altered: 

 Function   [other Function type actions]

 Item   [operators of similar scope]

 Mathematical   [other Mathematical operators]

 Already in v5.0.0

 


rand()

rand() returns a pseudo-random number between 0 and 1. No argument is required.

Getting 1-based ranges vs. zero-based ranges of values

Consider:

$MyNum=round(rand()*10) 

$MyNum will now be one of eleven integers in the range 0 through to 10.

But, what if the '10' argument about is actually a child count:

$MyNum=round(rand()*$ChildCount) 

If the $ChildCount was 10 and $MyNum were used to fetch a random child using $SiblingOrder($MyNum) the process would fail if $MyNum were zero. $SiblingOrder numbers from 1. Indeed, in this case the need is for ten integers, one through to ten.

A 1-based range can be achieved:

$MyNum=round(rand()*(10-1))+1 

$MyNum=round(rand()*($ChildCount-1))+1 

If the main input is 10, by subtracting 1 the process returns a randomised integer in in the range 0-9 (ten numbers) and then adding back 1 shifts the value range to 1-10.


Possible relevant notes (via "Similar Notes" feature):


A Tinderbox Reference File : Actions & Rules : Operators : Action Operator Scope : Item-based operators : rand()