Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
29
Task/Knuth-shuffle/Modula-3/knuth-shuffle.mod3
Normal file
29
Task/Knuth-shuffle/Modula-3/knuth-shuffle.mod3
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
MODULE Shuffle EXPORTS Main;
|
||||
|
||||
IMPORT IO, Fmt, Random;
|
||||
|
||||
VAR a := ARRAY [0..9] OF INTEGER {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
||||
|
||||
PROCEDURE Shuffle(VAR a: ARRAY OF INTEGER) =
|
||||
VAR temp: INTEGER;
|
||||
n: INTEGER := NUMBER(a);
|
||||
BEGIN
|
||||
WITH rand = NEW(Random.Default).init() DO
|
||||
WHILE n > 1 DO
|
||||
WITH k = rand.integer(0, n - 1) DO
|
||||
DEC(n);
|
||||
temp := a[n];
|
||||
a[n] := a[k];
|
||||
a[k] := temp;
|
||||
END;
|
||||
END;
|
||||
END;
|
||||
END Shuffle;
|
||||
|
||||
BEGIN
|
||||
Shuffle(a);
|
||||
FOR i := FIRST(a) TO LAST(a) DO
|
||||
IO.Put(Fmt.Int(a[i]) & " ");
|
||||
END;
|
||||
IO.Put("\n");
|
||||
END Shuffle.
|
||||
Loading…
Add table
Add a link
Reference in a new issue