| 1 | PROGRAM ZUFALLSZAHLEN(OUTPUT); |
| 2 | |
| 3 | CONST R0 = 2097149 (* 2^21 - 3 *); |
| 4 | ALFA = 2051 (* 2^11 + 3 *); |
| 5 | BASE = 2097152 (* 2^21 *); |
| 6 | |
| 7 | VAR RN,I,N: INTEGER; |
| 8 | H: ARRAY[0..9] OF INTEGER; |
| 9 | X: REAL; |
| 10 | |
| 11 | FUNCTION RANDOM: REAL; |
| 12 | BEGIN RN := (RN*ALFA) MOD BASE; |
| 13 | RANDOM := RN/BASE |
| 14 | END; |
| 15 | |
| 16 | |
| 17 | BEGIN RN := R0; |
| 18 | FOR I := 0 TO 9 DO H[I] := 0; |
| 19 | FOR N := 1 TO 1000 DO |
| 20 | BEGIN X := RANDOM; |
| 21 | WRITE(X :16:10); IF N MOD 5 = 0 THEN WRITELN; |
| 22 | I := TRUNC(10*X); |
| 23 | H[I] := H[I] + 1 |
| 24 | END; |
| 25 | WRITELN; |
| 26 | FOR I := 0 TO 9 DO WRITE(H[I]:8); WRITELN |
| 27 | END. |