Подмножества множества {0,....,n-1} - Prolog
Формулировка задачи:
Сгенерировать все подмножества данного N-элементного множества {0,....,n-1}.
Решение:
Заведем массив B[0..N] из (N+1) элементов. B[i]=0, если i-ый элемент в подмножество не входит и B[i]=1 иначе.Т.о. пустому подмножеству будет соответствовать набор из N нулей, а N-элементному подмножеству набор из N едениц. Тут явно заметна связь подмножества с двоичным представлением числа.
Решение задачи: «Подмножества множества {0,....,n-1}»
textual
Листинг программы
app(A,[],[[A]]) :- !. app(A,[H|T],R) :- app(A,T,R1), append([[A|H]],R1,R). bull([],[]) :- !. bull([A|T],R) :- bull(T,R1), app(A,R1,R2), append(R1,R2,R).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д