問題タブ [zebra-puzzle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
357 参照

prolog - プロローグでの通訳者のなぞなぞ

なぞなぞ情報はこちら


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

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

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


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

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

0 投票する
1 に答える
115 参照

prolog - プロローグは、異なるパラメーターに対して同じ答えを出力します

論理パズルを解く Prolog プログラムを書いています。回答を印刷しようとすると、すべての回答に対して同じ回答が得られます。論理パズルの答えは次のとおりです。

  • ジュヌビエーブはサイズ 4 のマンザリータを購入しました
  • lucia はサイズ 7 の Graaffetz を購入しました
  • ショーナはサイズ 5 のウィリフォードを購入しました
  • Vanessa はサイズ 6 の Abbot Hill を購入しました

私のコードは次のとおりです。

SWI に行って、次のように依頼すると:

-tell(X,Y,Z) 出力: X はジュヌビエーブに等しく、Y は 4 に等しく、Z は修道院長の丘に等しい。

そして、たとえば、tell(vanessa,Y,Z) のように変数の 1 つを指定すると、次のように出力されます。Y と Z の値は同じままにします。

0 投票する
1 に答える
1020 参照

prolog - プロローグでアインシュタインの謎を解く

プロローグでアインシュタインの謎を解こうとしています。

私が書いたプログラムに問題があります。基本的な方法は、すべての制約を追加し、Prolog に唯一の可能な解決策を見つけさせることでした。

問題は、Prolog が 0 の解を見つけることです。プログラムを特定の解から解なしにする制約を分離しましたが、その理由がわかりません。

これに対する現在の解決策は次のとおりです。

最初の行のコメントを外すと、同じステートメントが false を返します。

なぜそうなるのかを理解するのに役立ちたいと思います。部分的な解決策では、ノルウェー語が 2 回表示され、これが問題を示している可能性があることに注意しました。