changed random function, added CSP module

This commit is contained in:
ceriel
1987-07-09 15:15:22 +00:00
parent e5dd1249b2
commit c7d4d35200
10 changed files with 423 additions and 10 deletions

View File

@@ -1,11 +1,17 @@
IMPLEMENTATION MODULE random;
VAR seed: CARDINAL;
FROM Unix IMPORT getpid, time;
TYPE index = [0..54];
VAR X: ARRAY index OF CARDINAL;
k, j: index;
PROCEDURE Random(): CARDINAL;
BEGIN
seed := seed * 77 + 153;
RETURN seed;
IF k+1 > 54 THEN k := 0; ELSE INC(k) END;
IF j+1 > 54 THEN j := 0; ELSE INC(j) END;
X[k] := X[k] + X[j];
RETURN X[k]
END Random;
PROCEDURE Uniform (lwb, upb: CARDINAL): CARDINAL;
@@ -15,5 +21,11 @@ BEGIN
END Uniform;
BEGIN
seed := 253B;
X[0] := time(NIL);
X[0] := CARDINAL(getpid()) * X[0];
FOR k := 1 TO 54 DO
X[k] := X[k-1] * 1297;
END;
k := 54;
j := 30;
END random.