Return a random integer.
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.
\ Baden: these implementations aren't for serious work VARIABLE RND \ Holds current result HERE RND ! \ Possible initialization : RANDOM ( -- u ) RND @ 31421 * 6927 + DUP RND ! ;
: 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