Изменения

Перейти к: навигация, поиск

Коды Грея для перестановок

766 байт добавлено, 09:17, 3 декабря 2010
Нет описания правки
1 2 4 3
|}
== '''Определение''' ==
 
'''Коды Грея для перестановок''' - называют такое упорядочение перестановок, что соседние перестановки отличаются только элементарной транспозицией.
 
== '''Построения Кода Грея для перестановок на Pascal''' ==
for i := 1 to n do
begin
P[i] := i;
C[i] := 1;
PR[i] := true;
end;
C[n] := 0;
for g := 1 to n do
write(P[g], ' ');
writeln;
i := 1;
while i < n do
begin
i := 1;
x := 0;
while C[i] = n - i + 1 do
begin
PR[i] := not PR[i];
C[i] := 1;
if PR[i] then x := x + 1;
i := i + 1;
end;
if i < n then
begin
if PR[i] then k := C[i] + x
else k := n - i + 1 - C[i] + x;
swap(P[k], P[k + 1]);
for g := 1 to n do
write(P[g], ' ');
writeln;
C[i] := C[i] + 1
end;
end;
152
правки

Навигация