09/06/08 21:03:51
>>112 ちょっと読み難いので書き直し。私は力技でタイプしてしまいましたが
top3/3 をどれだけ素早く質問から(?- ...)生成できるかということのようです。
t112_5(L,X) :-
t112_5(L,[0,0,0],X).
t112_5([],L,L).
t112_5([A|R],L1,L) :-
top3(A,L1,L2),
t112_5(R,L2,L).
top3(N,[A,B,C],[A,B,N]) :-
A >= B,A >= C,B >= C,N > C.
top3(N,[A,B,C],[A,C,N]) :-
A >= B,A >= C,C >= B,N > B.
top3(N,[A,B,C],[B,C,N]) :-
B >= A,B >= C,C >= A,N > A.
top3(N,[A,B,C],[A,B,N]) :-
B >= A,B >= C,A >= C,N > C.
top3(N,[A,B,C],[B,C,N]) :-
C >= A,C >= B,B >= A,N > A.
top3(N,[A,B,C],[A,C,N]) :-
C >= A,C >= B,A >= B,N > B.
top3(_,L,L).