are_different(List1,List2):-
nth0(0,List1,Slot1),
nth0(0,List2,Slot2),
Slot1\==Slot2.
fillSchedule([30,_,_,_,_,_,__],S).
fillSchedule([H|T],[H1|T1]):-
are_different(H,H1),
H1 = H,
fillSchedule(T,T1).
fillSchedule([H|T],L):-
fillSchedule(T,L).
大きな 4170 要素リスト内のリストは次の形式です
[1,A,B,C,D,E,F],[1,A1,B1,C1,D1,F1].......[5,_,_,_,_,_,_].....[30,_,..]
各リストは何らかの形で他のリストとは異なりますが、最も重要な要素である最初の要素 (1)、(2) などは必ずしも必要ではありません。fill Schedule 述語の 1 つの可能な解決策として、30 で構成されるリストが必要です。このような最初の大きなリストから抽出された要素[[1,...],[2,...],[3,...] etc till 30
、述語の次のソリューションには、30 個の要素を含むリストの別のリストが含まれている必要がありますが、最初に選択された 30 個の要素とは異なり、元の 4170 個の要素から選択する要素がなくなるまで続きます。