問題タブ [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.
prolog - プロローグでの通訳者のなぞなぞ
なぞなぞ情報はこちら
6 人の通訳者: フラン フレンチ、ジェラルディン ジャーマン、ダドリー ダッチ、スパイク スペイン、ポリー ポーランド、ルーマニア ロン。全員がフランス語 (フランス語)、ドイツ語 (ドイツ語)、オランダ語 (オランダ語)、スペイン語 (スペイン語)、ポーランド語 (ポーランド語)、ルーマニア語 (ルーマニア語) の 2 つの言語を話します。以下が適用されます。
- 彼の姓に対応する言語を話す通訳はいません。
- 2 人の通訳者が同じ 2 つの言語を話すことはありません</li>
- 6 つの言語のそれぞれが、正確に 2 人の通訳者によって話されます。
- スパイクはオランダ語とドイツ語を話します。
- オランダ語とポーランド語を話す通訳がいます。
- フランとダドリーは、姓に対応しない 4 つの言語 (各 2 つ) を話します。
- ダドリーが話す言語を姓に持つ通訳者は、フランス語を話します。
- ドイツ語とポーランド語を話せる通訳はいません。
すべての通訳者が話す言語は何ですか?
これは私が今までやってきたことです。ルール 1、4、および 8 は正しい結果を返しています。
主にルール 2 と 7 について助けが必要です。助けていただければ幸いです。
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 の値は同じままにします。
prolog - プロローグでアインシュタインの謎を解く
プロローグでアインシュタインの謎を解こうとしています。
私が書いたプログラムに問題があります。基本的な方法は、すべての制約を追加し、Prolog に唯一の可能な解決策を見つけさせることでした。
問題は、Prolog が 0 の解を見つけることです。プログラムを特定の解から解なしにする制約を分離しましたが、その理由がわかりません。
これに対する現在の解決策は次のとおりです。
最初の行のコメントを外すと、同じステートメントが false を返します。
なぜそうなるのかを理解するのに役立ちたいと思います。部分的な解決策では、ノルウェー語が 2 回表示され、これが問題を示している可能性があることに注意しました。