Рассмотрим следующий список состояний: [Sin, S2, S3, ..., Sout]с помощью пролог генерировать предложения
и следующие правила:
, то можно вернуться от S (п) до S (N-1), если есть такие S (N-1)
это не возможно, чтобы вернуться из S (уходит)
себе ntence всегда начинается с S (в) и заканчивается S (из)
Я хотел бы иметь правило, которое может быть активирована как это:
?- sentence(X, backs)
, в котором «спины» означает, как много раз «назад» разрешено.
Для этого списка [а, б, в, г]
?- sentence(x, 2)
будет генерировать:
[a,b,c,d] %no backs
[a,b,a,b,c,d] %one back
[a,b,c,b,c,d] %from d we cannot go back
[a,b,a,b,c,b,c,d] %two backs
[a,b,c,b,a,b,c,d] %two backs
Ваша проблема, как указано в заявлении, вернет либо 1, что список имеет только два элемента или бесконечный в противном случае. Например. если он имеет 3 элемента (a, b, c), вы можете сформировать (a, b, c), (a, b, a, b, c), (a, b, a, b, a, ..., в) где ... любое число (b, a) подпоследовательностей. – gusbro
В запросе ожидается ограничение. С параметром «backs» я рассчитываю контролировать, сколько раз вернуться назад. Это сделает его конечным. –
, так что вы нашли какие-либо ответы здесь полезными вообще, достойными повышения и принятия? –