Вопросы по теме 'prolog-dif'
Упрощенный коммивояжер на Прологе
Я просмотрел похожие вопросы, но не могу найти ничего, что имело бы отношение к моей проблеме. Я изо всех сил пытаюсь найти алгоритм или набор «циклов», которые найдут путь от CityA до CityB , используя базу данных...
7944 просмотров
schedule
30.05.2023
Почему в этом простом примере происходит сбой Пролога?
likes(tom,jerry).
likes(mary,john).
likes(mary,mary).
likes(tom,mouse).
likes(jerry,jerry).
likes(jerry,cheese).
likes(mary,fruit).
likes(john,book).
likes(mary,book).
likes(tom,john).
likes(john,X):-likes(X,john), X\=john.
Привет! Выше...
952 просмотров
schedule
20.07.2023
Реификация термина равенство / неравенство
Программы на чистом Prolog, которые четко различают равенство и неравенство терминов, страдают от неэффективности выполнения; даже когда все относящиеся к делу термины заземлены.
Недавний пример SO - это этот ответ . Все ответы и все ошибки...
1451 просмотров
schedule
19.05.2022
Заставить Prolog выбирать уникальные значения переменных
Хорошо, я новичок в Prolog, так что извините, если это что-то тривиальное, но я не могу найти правильный элегантный ответ на этот вопрос. Я пытаюсь выполнить это упражнение здесь, на learnprolognow.org , упражнение 2.4 (кроссворд).
В упражнении...
3278 просмотров
schedule
20.05.2022
Удаление элемента из списка
Я знаю, что этот вопрос уже задавался, но я просто хочу спросить о моей конкретной реализации. Я пишу эту функцию, чтобы попрактиковаться в Прологе и лучше понять Пролог. Вот что у меня есть:
del(Ele, [H], [H]) :- Ele \= H.
del(Ele, [H|T],...
300 просмотров
schedule
05.07.2023
Почему SWI-Prolog предлагает только одно решение?
Честно говоря, я новичок в Prolog, так что прошу прощения за мое незнание.
У меня есть простой предикат для подсчета вхождений атома в список, а именно:
count(L, B, C) :-
L = [], C = 0, !;
L = [H|T], H \= B, count(T, B, C), !;
L =...
1739 просмотров
schedule
14.01.2024
Проблема с разделением Пролога на два списка
У меня есть задание на прологе.
Мне нужно посмотреть на первый элемент в списке, посмотреть, совпадают ли его следующие элементы, пока они не совпадают, и разделить списки на первый элемент и его дубликаты. например, если бы мой список был...
244 просмотров
schedule
27.10.2022
Есть ли противоположность оператору подстановки, чтобы специально не находить указанные элементы в Прологе?
Мне было трудно придумать название для этого вопроса, поэтому я попытаюсь объяснить свою проблему как можно лучше здесь.
В Прологе вы можете использовать оператор _ в предикате, чтобы получить все определения независимо от того, что там существует,...
787 просмотров
schedule
31.07.2023
различный / 2 - существует ли чистое, детерминированное определение?
different(Xs, Ys) :-
member(X, Xs),
non_member(X, Ys).
different(Xs, Ys) :-
member(Y, Ys),
non_member(Y, Xs).
Хотя это определение с использованием member/2 и non_member/2 почти 1 идеален с декларативной точки зрения, он...
927 просмотров
schedule
18.02.2022
Разделение списка в прологе по условию
у меня есть список
[a,a,a,a,b,b]
Моя цель состоит в том, чтобы разделить его на
[[a,a,a,a],[b,b]]
предикат, который я реализовал до сих пор
split1([],[]).
split1([A1|T],[[H1,H2]|B]):-
A1=[H1,H2],
H1=H2,
split(T,B)....
618 просмотров
schedule
18.07.2023
Заполнить список только одним вхождением нескольких элементов списка
Я новичок в Прологе, и я пытаюсь его понять.
Я начал с простой программы, которая должна:
check if an element is contained in the rest of the list
if FALSE do nothing
если TRUE, добавьте его во второй список. (во второй список должно...
216 просмотров
schedule
07.02.2024
Проверьте, не превышает ли частота какого-либо элемента предел
Я хочу решить проблему, заключающуюся в том, что у меня есть список элементов Prolog. Если частота любого элемента больше N , возвращается false. Мои ожидания, как показано ниже.
?- frequency([1,2,2,2,5],3).
true.
?-...
258 просмотров
schedule
27.05.2023
Prolog - Как ограничить длину списка переменных
У меня возникли проблемы с созданием всех списков, соответствующих определенным критериям.
city(new_york, 47).
city(chicago, 100).
all_unique([]).
all_unique([H|T]) :- H = [] ; (not(member(H, T)), all_unique(T)).
cities([Head|Tail]) :-...
741 просмотров
schedule
01.10.2022
Как компактно выразить дизъюнкт неравенств без лишних ответов/решений
Рассмотрим, что я пробовал:
dif_to_orto(A, B, C) :-
( dif(A, B)
; dif(A, C)
).
Хотя это определение прекрасно с декларативной точки зрения, оно содержит много избыточности. Думать о:
?- dif_to_orto(A, B, C), A = 1, B = 2, C = 2....
390 просмотров
schedule
30.01.2024