====== 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