|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexey Danov 2:5020/400 28 Dec 2001 12:42:32 To : Alexey Danov Subject : Re: разбиение множества --------------------------------------------------------------------------------
"Alexey Danov"
Сорри, не проверил и пропустил пару опечаток.
Вот проверенный код для Delphi:
const
M : array[0..3] of char = ('1','2','3','4'); // или в обратном порядке
Long = 4;
var
i,j : integer;
S:string;
// вывод всех подмножеств
for i := 0 to 1 shl Long-1 do begin
// для исключения пустого и полного [1,1 shl Long-2]
S := '{';
for j := 0 to Long-1 do
if i shr j and 1 = 1 then S:=S+M[j]+',';
Memo1.Lines.Add(S+'}');
end
end;
// вывод всех пар подмножеств
for i := 1 to 1 shl (Long-1)-1 do begin
S := '{{';
for j := 0 to Long-1 do
if i shr j and 1 = 1 then S := S + M[j] + ',';
S := S + '},{';
for j := 0 to Long-1 do
if not i shr j and 1 = 1 then S := S + M[j] + ',';
Memo1.Lines.Add(S+'}');
end;
--- ifmail v.2.15dev5
* Origin: Internet-Arkhangelsk Company (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/892667dd64da.html, оценка из 5, голосов 10
|