|
Вопрос # 3 729/ вопрос открыт / |
|
Здравствуйте, эксперты! Помогите разработать алгоритм решения задачи: Создать программу генерирования всех подмножеств заданого n- елементного множества.
Ответ #1. Отвечает эксперт: vlsavkin
Здравствуйте, Дементьев Евгений Владимирович!
Найдено на просторах интернета и доточено напильником.
О самих алгоритмах можно почитать, например здесь:
http://program.rin.ru/razdel/html/698.html
Приложение: Переключить в обычный режим- program Project;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- const
- nmax = 24;
- type
- list = array[1..nmax] of integer;
- var
- k, i, j, h, n, q: integer;
- a, p: list;
-
- procedure print(k: integer);
- var
- i: integer;
- begin
- for j := 1 to k do
- write(p[j]: 4);
- writeln
- end; {print}
-
- procedure cnk(n, k: integer);
- procedure gen(m, L: integer);
- var
- i: integer;
- begin
- if m = 0 then
- print(k)
- else
- for i := L to n - m + 1 do
- begin
- p[k - m + 1] := a[i];
- gen(m - 1, i + 1)
- end
- end; {gen}
- begin {cnk}
- gen(k, 1)
- end; {cnk}
- begin
- readln(n);
- for h := 1 to n do
- {main}
- begin
- k := h;
- for i := 1 to n do
- a[i] := i;
{çàïîëíèòü
ìàññèâ
ìîæíî è
ïî-äðóãîìó}
- cnk(n, k);
- end;
- readln;
- end.
 |
Ответ отправил: vlsavkin (статус: 2-ой класс)
Время отправки: 3 февраля 2010, 12:04
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|