我給出了2個列表,例如K=[a,b,c,d,e,f,g]
和L=[a,b,1,d,e,2,g]
。當這兩個列表有兩個不同的元素,那麼他們很友善。友好列表序言
這是我已經試過:
friendly(K,L):-
append(L1,[Z],A1),
append(A1,L2,A2),
append(A2,[Q],A3),
append(A3,L3,K),
append(L1,[Y],B1),
append(B1,L2,B2),
append(B2,[W],B3),
append(B3,L3,L),
Z\=Y,
Q\=W.
謝謝大家這麼多,最後我找到了正確的代碼:
friend(L1,L2):-
append(A,Y,L1),
append([Z|T],[F|TT],Y),
append(A,Q,L2),
append([R|T],[O|TT],Q),
Z\=R,
F\=O.
請您澄清,*當這兩個列表有2個不同的元素*?你的意思是他們只在兩個元素上有所不同,其餘部分必須是相同的?我認爲秩序並不重要? '[1,2,3]'和'[a,b,c]'友好嗎?那麼'[a,b,c,d]'和'[a,b]'呢? – lurker
你的意思是他們只在兩個元素上有所不同,其餘必須是相同的?是的,命令很重要。是[1,2,3]還是[a,b,c]友好?不。[a,b,c,d]和[a,b]怎麼樣?是的,他們友好 – John
這個友好列表(K,L)怎麼樣: - append(L1,[C | L2],T1), append(T1,[F | L3],K), append(L1, D | L2],Y1), 附加(Y1,[E | L3],L), C \ = D, F \ = E。 – John