如何检查列表列表是否包含在Prolog中重复多次的元素

时间:2019-06-18 08:32:53

标签: list prolog predicate

我必须在Prolog中写这个谓词:

lineOrizzontal(A,Length,Plan).
  1. 平面图通过5个元素的10个列表(行)的列表表示10 x 5的平面

  2. 一行包含元素的长序列Length(输入参数)

在以下情况下,谓词为真

A = a16, 
Length = 3, 
Plan = [[a1,a1,a1,a4,a4],
        [a1,a1,a1,a4,a4],
        [a1,a1,a1,a10,a8],
        [a5,a5,a2,a2,a2],
        [a5,a5,a2,a2,a2],
        [a6,a6,a2,a2,a2]
        [a6,a6,a3,a3,a3],
        [a7,a7,a3,a3,a3],
        [a7,a7,a3,a3,a3],
        [a15,a16,a16,a16,a9]]

还有这个:

squareInAPlan(A,Length,Plan).
  1. 平面图通过5个元素的10个列表(行)的列表表示10 x 5的平面

  2. 平面图在宽度方向上包含一个正方形的符号A。 考虑到边长可以是1、2或3,因此简化了。

在以下情况下,谓词为真

A = a2,
Length = 3,
Plan = [[a1, a1, a1, a4, a4],
        [A1, a1, a1, a4, a4],
        [A1, a1, a1, a10, a8],
        [A5, a5, a2, a2, a2],
        [A5, a5, a2, a2, a2],
        [A6, a6, a2, a2, a2],
        [A6, a6, 3, 3, 3],
        [A7, a7, 3, 3, 3],
        [A7, a7, 3, 3, 3],
        [A15, a16, a16, a16, a9]]

0 个答案:

没有答案