RND

Syntax

RND [([min TO] max)]

Location

QL ROM

This function produces a (pseudo) random number. When used without parameters it returns a floating point number between 0 and 1, otherwise an integer number lying between the two parameters (including the parameters) will be returned.

Expression

Results

x=RND

0 < x < 1

x=RND(max) where max >= 0

0, 1, 2, 3, …, max

x=RND(min TO max) where max >= min

min, min+1, …, max-1, max

Example

100 CLS: PRINT "RND Statistics"
110 n = 1000: m = 10: DIM h%(m)
120 FOR i=1 TO n
130   k = RND(1 TO m)
140   h%(k) = h%(k )+ 1
150   AT 2,5: PRINT i
160 END FOR i
170 PRINT: avdiff = 0
180 FOR k = 1 TO m
190   diff = n / m - h%(k)
200   PRINT k; TO 6; h%(k); TO 12; INT(diff)
210   avdiff = avdiff + ABS(diff / n * m)
220 END FOR k
230 PRINT\"average difference:" ! INT(100 * avdiff / m);"%"

NOTE

If a range is specified {eg. RND(x TO y)} the second number must not be less than the first (ie. y>=x). If only one parameter is specified, this is taken to be the top of the range, with the bottom of the range being 0. Therefore, if only one parameter is specified, this must not be negative.

CROSS-REFERENCE

The results of RND can be influenced with RANDOMISE. See also MATRND.