====== random ======
Return a random integer.
===== Gforth version =====
Variable seed
$10450405 Constant generator
: rnd  ( -- n )  seed @ generator um* drop 1+ dup seed ! ;
: random ( n -- 0..n-1 )  rnd um* nip ;
Der ''generator'' wurde ausfaktorisiert. Damit besteht die Möglichkeit, einen anderen ''generator'' zu verwenden. Die Konstante ist nur eine Möglichkeit.
===== Starting Forth version =====
\ Baden: these implementations aren't for serious work
VARIABLE RND  \ Holds current result
HERE RND !    \ Possible initialization
: RANDOM  ( -- u ) RND @  31421 *  6927 +  DUP RND ! ;
===== Wil Baden's 32-bit version =====
: RANDOM  ( -- u ) RND @  3141592621 *  1+ DUP RND ! ;
\ Return a random integer between 0 and u-1
: CHOOSE  ( u -- 0...u-1 ) RANDOM UM* NIP ;
\ Another way of initializing
: RANDOMIZE  ( -- )  TIME&DATE 5 0 DO 65599 * + LOOP  RND ! ;
----
Tags: ANS-Forth random integer number seed randomize