0

有谁知道我可以如何确定/确保序言列表中只有一个重复元素?

我正在为考试而学习。

4

2 回答 2

6

使用 对列表进行排序sort/2。它会删除重复项,因此如果排序列表正好短了一个,那么你正好有一对。

one_duplicate(L) :-
    sort(L, Sorted),
    length(L, Len),
    length(Sorted, SortedLen),
    Len =:= SortedLen + 1.

找到重复的对完全是另一个问题。

于 2013-10-15T07:02:06.317 回答
-2
one_duplicate(L) :-
    sort(L, Sorted),
    length(L, Len),
    length(Sorted, SortedLen),
    Len =:= SortedLen + 1.
于 2018-04-02T14:13:34.080 回答