Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Prolog > Разность множеств


Автор: Bender266 30.6.2009, 15:32
Нужно найти разность множеств М1 и М2 с добавлением в полученный список первого и последнего элемента М2 в соответствием с местом положение.
Пример (а b с d)-(b с)=(а d) должно получиться (b а d с). 

Автор: Bender266 2.7.2009, 23:26
У меня получилось найти только разность множеств.

Код

domains
IntList = Integer*
predicates
разность(IntList,IntList,IntList)
принад(Integer,IntList)
goal
М1 = [1,3,5,7,9],
М2 = [1,2,3],
М3 = [1,3],
разность(М1,М2,М_разн1),
!.
clauses

разность([Элемент|М1],М2,[Элемент|М]):-
not(принад(Элемент,М2)),!,разность(М1,М2,М).
разность([_|М1],М2,М):-!,разность(М1,М2,М).
разность([],_,[]).

принад(Элемент,[Элемент|_]):-!.
принад(Элемент,[_|Множество]):-принад(Элемент,Множество).


Может кто-нибудь сможет добавить в этот код программы добавление элементов. Я очень на вас надеюсь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)