2016-04-13 11:08:28 +03:00
|
|
|
|
// Все перестановки
|
2015-05-14 22:35:07 +03:00
|
|
|
|
const n = 4;
|
|
|
|
|
|
|
2019-01-01 14:15:29 +03:00
|
|
|
|
procedure Perm(a: array of integer; m: integer);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
begin
|
|
|
|
|
|
if m=1 then
|
|
|
|
|
|
a.Println;
|
|
|
|
|
|
for var i:=0 to m-1 do
|
|
|
|
|
|
begin
|
2015-12-28 14:25:15 +03:00
|
|
|
|
Swap(a[i],a[m-1]); // ставим каждый на место последнего
|
2019-01-01 14:15:29 +03:00
|
|
|
|
Perm(a,m-1);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
Swap(a[i],a[m-1]);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
2019-01-01 14:15:29 +03:00
|
|
|
|
var a := Range(1,n).ToArray; // заполнение массива a числами от 1 до n
|
|
|
|
|
|
Perm(a,n);
|
2015-05-14 22:35:07 +03:00
|
|
|
|
end.
|