Пример моей проблемы с CLP (это небольшая часть более крупной проблемы, в которой используется библиотека clpfd):
Для списка длиной 5 факт el_sum(Pos,N,Sum)
указывает, что N последовательных элементов, начиная с позиции Pos (индекс от 1), имеют сумму, равную Sum. Итак, если у нас есть
el_sum(1,3,4).
el_sum(2,2,3).
el_sum(4,2,5).
Тогда [1,2,1,4,1]
будет работать для этого примера, поскольку 1 + 2 + 1 = 4, 2 + 1 = 3, 4 + 1 = 5.
Я борюсь с тем, как даже начать использовать el_sum's
для поиска решений со списком ввода [X1,X2,X3,X4,X5]
. Я думаю, мне стоит использовать findall
, но я ничего не добился.
(Моя настоящая проблема намного больше, чем эта, поэтому я ищу решение, которое работает не только для трех фактов и небольшого списка).
Спасибо!