То, что я хочу сделать, это дать 2 списка найти минимальный подсписок, который содержит все элементы первого списка.То, что я имею в виду, дано Sublist=[1,3,1,3,1,3,3,2]
и K=[1,2,3]
Я хочу функцию, которая возвращает мне 4, который является размером наименьшего sublist=[1,3,3,2]
, содержащего все элементы на K
.
Мой код:
ping(K,Sublist,Min):-
append(_,List,Sublist),
\+subtract(K,List,[]),
length(List,Len),
( Len<10 ,Len>3 ->
Min is Len
;
true/0 ).
Это должно возвращать Min = 4, когда я использую этот запрос -> ping([1,2,3],[1,3,1,3,1,3,3,2],Min).
, но вместо этого он возвращает true. Почему это происходит и как я могу это исправить?