Ограничение на целочисленное деление - PullRequest
1 голос
/ 16 апреля 2019

У меня есть следующее утверждение в прологе (Eclipse CLP):

?-X::1..100,  X/5 #= 2, X = 12.

Результат No..Я хочу проверить, что целочисленное деление X на 5 равно 2 или нет.Если я напишу следующее утверждение:

?-X::1..100,  X//5 #= 2, X = 12.

, я получу следующую ошибку:

ошибка создания экземпляра в // (X {1 .. 100}, 5, _703)

Итак, вопрос в том, как проверить целочисленное деление для переменной X?

1 Ответ

0 голосов
/ 16 апреля 2019

Я предполагаю, что вы используете библиотеку (ic), которая в настоящее время напрямую не поддерживает разделение по полу или усечение.Вы можете переформулировать свое условие, введя переменную «остаток» и используя умножение:

?- X::1..100, Rem::0..4, X #= 5*2 + Rem, X = 13.
X = 13
Rem = 3
Yes (0.00s cpu)
...