Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 7
1

Объяснение готового задания (вычисление "разности множеств")

25.12.2014, 16:14. Просмотров 772. Ответов 1
Метки нет (Все метки)


Помогите, пожалуйста, разобраться с задачей.

Заданы s1 и s2 - "множества с повторяющими элементами". Необходимо определить предикат p(+S1,+S2,?S), который вычисляет "разность множеств". Например
p([ 1, 2, 1, 2, 1, 3], [5, 3, 3, 1, 2, 2], S) должен давать результат S=[1, 1];


Вот есть код, но не совсем понятно что именно делает каждая строка(особенно во 2 части программы). Объясните пожалуйста, кому не сложно)
Prolog
1
2
3
4
5
6
r(L,[],L).
r(L,[H|Tail],Ans):-del(L,H,Temp),r(Temp,Tail,Ans).
 
del([],_,[]).
del([H|Tail],H,Tail):- !.
del([H|Tail],X,[H|NewTail]):-del(Tail,X,NewTail).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2014, 16:14
Ответы с готовыми решениями:

Дано множество строчных латинских букв.Подсчитать сколько раз в это множеств входит от "C" до "D".
Дано множество строчных латинских букв.Подсчитать сколько раз в это множеств входит от "C" до "D".

Дано три однотипных множества x1, x2, x3 состоящих из цифр. Вычислить множеств "У" по правилу "У"=(х1+х2)*(х1-х2).
Vo-pervyh, chto-to ne to s kodom, po-moemu: vmesto TextBox1.Text = AdoEvents.Recordset! ...

Как написать регулярное выражение для выдергивания английских букв и символов: "+", ",", ":", "-", " ", "!", "?" и "."
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло",...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
1
Фрилансер
3680 / 2051 / 565
Регистрация: 31.05.2009
Сообщений: 6,684
26.12.2014, 02:57 2
Prolog
1
2
3
del([],_,[]). % Если что угодно удалять из пустого списка, будет пустой список
del([H|Tail],H,Tail):- !. % Если голова списка совпадает с удаляемым элементом, ответом будет хвост списка
del([H|Tail],X,[H|NewTail]):-del(Tail,X,NewTail). % Иначе голова переносится в ответ, а хвосты списков обрабатываются рекурсивно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2014, 02:57

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Класс "Задание" - Перенос "выполненного" задания из одного списка в другой
Вопрос из "базового курса". Код: #include<iostream> using namespace std; class Stack; class...

Получить значение из {"text1":"val1","text2":"val2","text3":{"text":"val"}}
Есть такая строка var my = '{"text1":"val1","text2":"val2","text3":{"text":"val"}}'; Как из...

Подсчитать сколько раз в множеств входит от "C" до "D"
Дано множество строчных латинских букв.Подсчитать сколько раз в это множеств входит от "C" до "D".

Известны сорта роз, выращиваемых тремя цветоводами: "Анжелика", "Виктория", "Гагарин", "Ave Maria", "Катарина", "Юбилейн
Известны сорта роз, выращиваемых тремя цветоводами: "Анжелика", "Виктория", "Гагарин", "Ave...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.