Benutzer-Werkzeuge

Webseiten-Werkzeuge


words:random

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

words/random.txt · Zuletzt geändert: 2010-12-29 18:12 von 127.0.0.1