31 lines
678 B
Text
31 lines
678 B
Text
go =>
|
|
|
|
% BSD
|
|
println(bsd=[bsd() : _ in 1..10]),
|
|
bsd_seed(1),
|
|
println(bsd2=[bsd() : _ in 1..10]),
|
|
|
|
% MS
|
|
println(ms=[ms() : _ in 1..10]),
|
|
ms_seed(1),
|
|
println(ms2=[ms() : _ in 1..10]),
|
|
|
|
nl.
|
|
|
|
% BSD
|
|
bsd_seed(Seed) =>
|
|
get_global_map().put(bsd_state, Seed).
|
|
bsd = Rand =>
|
|
M = get_global_map(),
|
|
Seed = cond(M.has_key(bsd_state), M.get(bsd_state),0),
|
|
Rand = (1103515245*Seed + 12345) mod 2**31,
|
|
M.put(bsd_state,Rand).
|
|
|
|
% Microsoft
|
|
ms_seed(Seed) =>
|
|
get_global_map().put(ms_state, Seed).
|
|
ms = Rand div 2**16 =>
|
|
M = get_global_map(),
|
|
Seed = cond(M.has_key(ms_state),M.get(ms_state),0),
|
|
Rand = ((214013*Seed + 2531011) mod 2**31),
|
|
M.put(ms_state,Rand).
|