14 lines
246 B
Text
14 lines
246 B
Text
PROC between = (INT a, b)INT :
|
|
(
|
|
ENTIER (random * ABS (b-a+1) + (a<b|a|b))
|
|
);
|
|
|
|
PROC knuth shuffle = (REF[]INT a)VOID:
|
|
(
|
|
FOR i FROM LWB a TO UPB a DO
|
|
INT j = between(LWB a, UPB a);
|
|
INT t = a[i];
|
|
a[i] := a[j];
|
|
a[j] := t
|
|
OD
|
|
);
|