Подмножества множества {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).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы