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) 等,这是最重要的因素。我希望作为填充计划谓词的一个可能解决方案,一个由 30 个组成的列表像这样从第一个大列表中提取的元素[[1,...],[2,...],[3,...] etc till 30
,谓词的下一个解决方案应该包含另一个列表列表,其中包含 30 个元素,但每个列表都与选择的前 30 个元素不同,依此类推,直到我们从原始 4170 个元素中没有更多元素可供选择