Вопросы по теме '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 просмотров

Получение всех чисел из заданного интервала в Прологе
Я новичок в мире Пролога и хотел бы написать правило, которое возвращает все элементы в определенном диапазоне. Я намерен сделать что-то вроде Ex: foo(X, Low, High) :- X > Low, X < High. И когда я набираю foo(X, 2, 5), он должен...
4321 просмотров
schedule 09.02.2023

Оптимизация поиска пути в программировании логики с ограничениями на Прологе
Я работаю над небольшим приложением на прологе для решения небоскребов и заборов головоломка. Неразгаданная загадка: Решенная головоломка: Когда я передаю программе уже решенные головоломки, она быстро, почти мгновенно проверяет...
1809 просмотров

Преобразование числа Пеано 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 просмотров

Разделение списка целых чисел на список положительных целых чисел и список отрицательных целых чисел
Я пытался создать предикат в Прологе, который разбивает список целых чисел на список положительных целых чисел и на список отрицательных целых чисел. Пример запроса с ожидаемым результатом: ?- 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 просмотров

Вычислить список кубов на Прологе
Итак, я занимаюсь Прологом в 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 просмотров

Как решить криптарифметическую головоломку на прологе
Мне нужно написать программу на Прологе для решения криптарифметической головоломки. Мне нужно написать функцию решения ([A, M, P, D, Y]), которая присваивает переменным [A, M, P, D, Y] значения от 0 до 9, чтобы она удовлетворяла уравнению AM + PM....
6710 просмотров
schedule 05.09.2022