0

なぞなぞ情報はこちら


6 人の通訳者: フラン フレンチ、ジェラルディン ジャーマン、ダドリー ダッチ、スパイク スペイン、ポリー ポーランド、ルーマニア ロン。全員がフランス語 (フランス語)、ドイツ語 (ドイツ語)、オランダ語 (オランダ語)、スペイン語 (スペイン語)、ポーランド語 (ポーランド語)、ルーマニア語 (ルーマニア語) の 2 つの言語を話します。以下が適用されます。

  1. 彼の姓に対応する言語を話す通訳はいません。
  2. 2 人の通訳者が同じ 2 つの言語を話すことはありません</li>
  3. 6 つの言語のそれぞれが、正確に 2 人の通訳者によって話されます。
  4. スパイクはオランダ語とドイツ語を話します。
  5. オランダ語とポーランド語を話す通訳がいます。
  6. フランとダドリーは、姓に対応しない 4 つの言語 (各 2 つ) を話します。
  7. ダドリーが話す言語を姓に持つ通訳者は、フランス語を話します。
  8. ドイツ語とポーランド語を話せる通訳はいません。

すべての通訳者が話す言語は何ですか?


これは私が今までやってきたことです。ルール 1、4、および 8 は正しい結果を返しています。

interpreter(fran,french).
interpreter(geraldine,german).
interpreter(dudley,dutch).
interpreter(spike,spanish).
interpreter(polly,polish).
interpreter(ron,romanian).

language(french).
language(german).
language(dutch).
language(spanish).
language(polish).
language(romanian).



%rule 1                                                                     OK
rule1([X,Y,Z,W]):- interpreter(X,Y), language(Z), language(W),   
                not(Z=W;Y=Z;Y=W),
                Z\=W, Z@<W.


%rule 2    
    %rule2([X,Y,Z,W]):- interpreter(X,Y), language(Z), language(W).
                    %interpreter(I2,S2), language(Z2), language(W2).
                    %not(X1=X2),
                    %((Z1=Z2) -> not(W1=W2)).



%rule 3
rule3([X,Y,Z,W]):- interpreter(X,Y), language(Z1), language(W), 
                interpreter(X,Y), language(Z1), language(W), 
                interpreter(X,Y), language(Z2), language(W), 
                not(Z1=Z2).

%rule 4                                                                 OK
rule4([X,Y,Z,W]):-  (X=spike -> Z=dutch,W=german;Z=_,W=_).

%rule 5
rule5([X,Y,dutch,polish]).

%rule 6
rule6a([fran,french,Z,W]):- interpreter(X,Y), language(Z1), language(W), 
                not(Z=dutch).
rule6b([dudley,dutch,Z,W]):- interpreter(X,Y), language(Z1), language(W), 
                not(Z=french).
    /*      
%rule 7
rule7([dudley,dutch,Z,W]):- rule7a(X,Z,L1,french),
                        rule7b(X,Z,french,L2),
                        rule7c(X,W,L1,french),
                        rule7d(X,W,french,L2).
                        */
%rule 8                                                                 OK
rule8([X,Y,Z,W]):- interpreter(X,Y), language(Z), language(W), 
                ((Z=german)-> not(W=polish);Z=_,W=_).   


solution(X):- rule1(X), rule2(X), rule3(X), rule4(X), rule5(X), rule6(X), rule7(X), rule8(X), .

主にルール 2 と 7 について助けが必要です。助けていただければ幸いです。

4

1 に答える 1