home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
language
/
prolog68
/
random.pl
< prev
next >
Wrap
Text File
|
1993-10-23
|
936b
|
38 lines
% Einfacher Zufallszahlengenerator für Prolog-68
%
% Copyright © 1990,91,92 Jens Kilian.
%
%
% randomize/0 Initialisierung
% randomize/1 Initialisierung mit fester Zahl (0 ... 65536)
% random(Min, Max, R) R ist Zufallszahl aus [Min, Max].
randomize :-
statistics(runtime, [Time, _]),
Seed is (Time and 65535) + 1,
randomize(Seed).
randomize(Seed) :- integer(Seed), Seed > 0, Seed < 65537, !,
erase_all(seed),
recorda(seed, Seed, _).
randomize(Gulp) :-
display(Gulp), display(' is not a legal seed.'), put(13), put(10),
randomize.
random(Min, Max, Random) :-
recorded(seed, Seed, Ref),
erase(Ref),
NewSeed is (75 * Seed) mod 65537,
recorda(seed, NewSeed, _),
Random is Min + ((NewSeed - 1) * (Max - Min + 1)) / 65536.
erase_all(Key) :-
recorded(Key, _, Ref),
erase(Ref),
fail.
erase_all(_).