Реферат: Генерация комбинаторных объектов
alphabet : string[26] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
b : array [1..100] of byte;
N,i : byte;
begin
readln(N);
for i:=1 to N+1 do b[i]:=0;
writeln ('Пустое множество');
while (b[N+1]=0) do
begin
i:=1;
while B[i]=1 do
begin B[i]:=0; inc(i); end;
B[i]:=1;
for i:=1 to n do
if b[i]=1 then write(alphabet[i]);
writeln;
end;
end.
При необходимости обрабатывать (анализировать) построенные подмножества могут быть добавлены вызовы процедур обработки, получающие в качестве параметра массив B (указывающий своими единичными элементами номера элементов множества, включенных в текущее подмножество).
2 Перестановки
Пусть мы имеем 4 компонента, обозначенные буквами A, B, C, D соответственно.
Тогда множество всех перестановок из этих компонент будет включать следующие элементы:
ABCD BACD CABD DABC
ABDC BADC CADB DACB
ACBD BCAD CBAD DBAC
ACDB BCDA CBDA DBCA
ADBC BDAC CDAB DCAB
ADCB BDCA CDBA DCBA