RosettaCodeData/Task/Linear-congruential-generator/Seed7/linear-congruential-generator.seed7
Ingy döt Net 6f050a029e update
2013-06-05 21:47:54 +00:00

31 lines
707 B
Text

$ include "seed7_05.s7i";
include "bigint.s7i";
var bigInteger: bsdSeed is 0_;
var bigInteger: msSeed is 0_;
const func integer: bsdRand is func
result
var integer: bsdRand is 0;
begin
bsdSeed := (1103515245_ * bsdSeed + 12345_) mod 2147483648_;
bsdRand := ord(bsdSeed);
end func;
const func integer: msRand is func
result
var integer: msRand is 0;
begin
msSeed := (214013_ * msSeed + 2531011_) mod 2147483648_;
msRand := ord(msSeed) mdiv 65536;
end func;
const proc: main is func
local
var integer: i is 0;
begin
writeln(" BSD MS");
for i range 1 to 10 do
writeln(bsdRand lpad 12 <& msRand lpad 12);
end for;
end func;