Prolog:如何创建一个不允许数字与另一个数字相邻的程序

Prolog: How to create a program that doesn't allow for a number to be neighbour to another number

我想编写一个 prolog 程序,它需要一个数字保持在其他 2 个数字之间,但没有一个特定的数字作为他的邻居。

例如我有数字 1,2,3,4,5。我希望数字 5 保持在除 4 之外的任何其他数字之间。

我该怎么做?

问题的解决方案是如果 'L4 = 4' 和 'L5 = 5' 那么在序言中我会做类似 'L4 is L5 - 2 ; L4 is L5 + 2' where L5 not(L5 = 1 ; L5 = 5) 的事情。然后编译器将显示类似 1,4,2,5,3.

的内容