Tinderbox 7 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]

 Baseline

 


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.