Вопросы по теме 'clpfd'
Пролог: обучение на примере
Я пытаюсь немного узнать о swi-prolog (помимо основных бесполезных программ).
Может ли кто-нибудь объяснить (возможно, в псевдокоде), что делает этот решатель судоку и связанные с ним функции? Если вам нужна дополнительная информация, ее можно...
6376 просмотров
schedule
18.09.2022
Решение проблемы N ферзей Как далеко мы можем зайти?
Проблема N-ферзей:
В этой задаче говорится, что для шахматной доски размером N на N найдите различные перестановки, в которых N ферзей могут быть размещены на доске, и никто не будет угрожать друг другу.
Мой вопрос: Какое максимальное значение...
14264 просмотров
schedule
20.11.2022
Понимание пролога [списки]
Я должен написать программу, которая сделает это:
?- pLeap(2,5,X,Y).
X = 2,
Y = 3 ;
X = 3,
Y = 4 ;
X = 4,
Y = 5 ;
X = 5,
Y = 5 ;
false.
(дает все пары X, X + 1 от 2 до 5, плюс особый случай в конце).
Якобы это решение. Я действительно не...
302 просмотров
schedule
06.03.2022
Prolog Beginner: как объединиться с операторами арифметического сравнения или как получить переменную set для диапазона значений
Я новичок в Prolog. Мне нужно написать целочисленный сумматор, который добавит числа от 0 до 9 к другим числам от 0 до 9 и даст решение 0-18. Вот что я хочу сделать:
% pseudo code
add(in1, in2, out) :-
in1 < 10,
in2 < 10,
out...
1214 просмотров
schedule
11.09.2022
преобразовать float в целое число в прологе
Как преобразовать число с плавающей запятой в целое в прологе?
Я пытался:
?- integer(truncate(sqrt(9))).
false.
?- integer(round(sqrt(9))).
false.
13755 просмотров
schedule
18.04.2023
Решатель мини-судоку на Прологе останавливается на полпути
Я работаю над «Семью языками за семь недель» и просто пытаюсь заставить работать пример из книги. Он решает сетку мини-судоку (4x4).
Автор использует gprolog, но я использую swi-prolog (по какой-то причине мне не удалось заставить gprolog работать...
5184 просмотров
schedule
22.12.2022
Как правильно написать сказуемое(не между)
Я пишу код следующим образом
testb :-
X::1..10,
V1 = 3,
V2 = 6,
testbb(X,V1,V2),
writeln(X).
testbb(X,V1,V2) :-
(
count(I,V1,V2),param(X,V1,V2) do
X#\=I
).
?- testb.
Yes (0.00s cpu)
_385{[1, 2, 7 .....
393 просмотров
schedule
13.02.2023
Переполнение рекурсии Пролога
fact(1,1):-!.
fact(N,F):-
N1=N-1,
fact(N1,F1),
F=F1*N.
Это приводит к переполнению стека (не сайту)! Это не должно из-за разреза (!). Работает ли это в SWI-Prolog?
226 просмотров
schedule
17.05.2023
Пролог: итерация
Добрый вечер, у меня простая проблема, и я предупреждаю вас, что я очень новичок в прологе. Предположим, что у вас есть три списка одинакового размера, каждый из которых содержит только 1, 0 или -1. Я хочу убедиться, что для всех i из i-х элементов...
496 просмотров
schedule
24.09.2022
Получение всех чисел из заданного интервала в Прологе
Я новичок в мире Пролога и хотел бы написать правило, которое возвращает все элементы в определенном диапазоне.
Я намерен сделать что-то вроде
Ex:
foo(X, Low, High) :- X > Low, X < High.
И когда я набираю foo(X, 2, 5), он должен...
4321 просмотров
schedule
09.02.2023
Оптимизация поиска пути в программировании логики с ограничениями на Прологе
Я работаю над небольшим приложением на прологе для решения небоскребов и заборов головоломка.
Неразгаданная загадка:
Решенная головоломка:
Когда я передаю программе уже решенные головоломки, она быстро, почти мгновенно проверяет...
1809 просмотров
schedule
03.05.2024
Преобразование числа Пеано s (N) в целое на Прологе
Я наткнулся на эту оценку логических чисел натуральными числами в учебнике, и это дало мне некоторую головную боль:
natural_number(0).
natural_number(s(N)) :- natural_number(N).
В правиле примерно указано, что: если N равно 0 , это...
2616 просмотров
schedule
14.03.2022
как решить, когда количество переменных в цели/запросе варьируется - Prolog Constrain Solver
Вот фрагмент классического решения криптоарифметической задачи SENDMORYg с использованием механизма решения ограничений пролога:
:- lib(ic).
sendmore(Digits) :-
Digits = [S,E,N,D,M,O,R,Y],
Digits :: [0..9],
alldifferent(Digits),
S #\= 0,
M #\= 0,...
231 просмотров
schedule
26.05.2023
Разделение списка целых чисел на список положительных целых чисел и список отрицательных целых чисел
Я пытался создать предикат в Прологе, который разбивает список целых чисел на список положительных целых чисел и на список отрицательных целых чисел.
Пример запроса с ожидаемым результатом:
?- split([1,-2,3,4,-8],X,Y).
X = [1,3,4],
Y =...
7096 просмотров
schedule
08.12.2022
Более быстрая реализация словесной арифметики в Прологе
Я уже сделал работающий обобщенный решатель вербальной арифметики на Прологе, но он слишком медленный. Простое выражение S E N D + M O R E = M O N E Y занимает 8 минут. Может ли кто-нибудь помочь мне заставить его работать быстрее?
/*...
3699 просмотров
schedule
08.10.2022
Вычислить список кубов на Прологе
Итак, я занимаюсь Прологом в SWI-Prolog и наткнулся на небольшую загвоздку. Я должен создать список кубов, учитывая входной список. В настоящее время у меня есть код
cubes([Head|Tail],Cubes) :-
cubes([Head|Tail],Cubes,[])....
2249 просмотров
schedule
14.04.2022
Головоломка Second End View, Prolog
Я пишу код на swi-prolog для решения пазлов Second End View 7*7 (пример http://www.funwithpuzzles.com/2009/10/abcd-second-end-view-ev4.html вот так 5*5) для номеров 1-6
:- [library(clpfd)].
gen_row(Ls):-length(Ls, 7), Ls ins 0..6.
abc_view :-...
366 просмотров
schedule
10.06.2023
Получение приказа в разрешении предикатов
Посмотрите на следующие цели (я использую swi-prolog с clpfd от Маркуса Триски):
result(Input,Result) :-
Input #> 10,
Result=decline.
result(Input,Result) :-
Input in 0..20,
Result=offer.
Возможный запрос выглядит так:...
532 просмотров
schedule
10.03.2023
Обработка ограничений Prolog: квадраты упаковки
Я пытаюсь решить проблему обработки ограничений в прологе.
Мне нужно упаковать 4 квадрата 5x5,4x4,3x3 и 2x2 в сетку 10x10. Они не могут перекрываться.
Мои переменные выглядят так:
Name: SqX(i), i=1..10, domain: 1..10
Где X либо 5,4,3,...
3882 просмотров
schedule
30.10.2022
Как решить криптарифметическую головоломку на прологе
Мне нужно написать программу на Прологе для решения криптарифметической головоломки.
Мне нужно написать функцию решения ([A, M, P, D, Y]), которая присваивает переменным [A, M, P, D, Y] значения от 0 до 9, чтобы она удовлетворяла уравнению AM + PM....
6710 просмотров
schedule
05.09.2022