問題タブ [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 に答える
838 参照

prolog - プロローグで Caliban の問題を解決する

学校のプロローグを使用して論理パズルを解くことに取り組んでいます。手がかりは次のとおりです。

  1. ブラウン、クラーク、ジョーンズ、スミスは、必ずしもそれぞれではありませんが、技術者、銀行家、医師、弁護士としてコミュニティに奉仕する 4 人の実質的な市民です。

    ジョーンズより保守的だがスミスよりリベラルなブラウンは、彼より年下の男性よりもゴルフが上手で、クラークより年上の男性よりも収入が多い.

    建築家より稼いでいる銀行家は、最年少でも最年長でもない。

    医者は弁護士よりもゴルフが下手ですが、建築家ほど保守的ではありません。

    予想通り、最年長の男性が最も保守的で最も収入が多く、最年少の男性が最高のゴルファーです。

    それぞれの職業は?

    ヒント: 天候、能力、相対年齢などで人をランク付けするには、1、2、3、4 の数字を使用します。これにより、比較のコーディングが容易になります。

(以下のように) コーディングするには、手がかりによって与えられたすべての関係をリストのリストとして解釈します。各リストは、

relative_politics、relative_salary、relative_age、および golf_ability の関係を次のように定義します。

例えば:

そして、それはすべての関係に続きます。

すべての手がかりをプロローグに忠実に翻訳したと思いますが、データベースにクエリを実行すると失敗すると表示されます。例えば:

NU プロローグを使用しています。手がかりの翻訳を間違えたのか、それともデータベースがリスト L のすべての条件を満たすために必要な事実を省略したのか疑問に思っています。

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

prolog - Einstein Riddle に似た、GNU Prolog を使用したなぞなぞ

私はプログラミングの完全な初心者であり、GNU Prolog を使用して Prolog でなぞなぞを作成して解決する必要があります。これは、アインシュタインのなぞなぞに似ていますが、洗練されていません。私は、次の表に含まれるアイテムのなぞなぞを作成しようとしています。

これまでの私のコードは次のようになっていますが、ここで間違っていることや正しいことを完全には理解していません。GNU Prolog でコードをコンパイルできますが、謎は解決しません。

私はこれらのことにまったく慣れていませんが、受講しているクラスの解決策を見つけなければならないので、助けていただければ幸いです。どんなヒントでも大いに役立ちます。ありがとう!

0 投票する
2 に答える
198 参照

prolog - 座席制限プログラム プロローグ - 対称性

この問題の解決策が偶数個ある理由についてのガイダンスを探しています。

エキセントリックな人は、クマ、ライオン、トラ、ゾウ、クズリ、サイ、ディンゴなどの野生動物の個人的なコレクションを持っています。これらの 7 匹の動物は、彼の危険な動物のコレクションを構成し、一列に配置された 7 つの動物の囲いに収容されています。一番左の囲いが 1 番、一番右の囲いが 7 番です。

これらの動物のいくつかは互いに動揺しているため、男性は次のペアの動物を分離する必要があると判断しました。

-クマとクズリ -サイとディンゴ -ライオンとトラ -クマとゾウ -ゾウとディンゴ -ゾウとクマ

2 匹の動物が隣接していない場合、つまり、間に別の囲いがある場合、2 匹の動物は離れています。すべての動物は異なるペンに配置する必要があります。

この問題の解決策が常に偶数になる理由を知りたいですか? 私が理解していることから、制約の問題は対称性で効率が向上します。つまり、異なる解決策を得るために対称的に行われている限り、ペン内の動物を簡単に交換できます。しかし、誰かがより明確な説明を提供できれば、これは非常に役に立ちます。前もって感謝します。

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

prolog - スタックサイズを増やすときの prolog get 構文エラー

Prolog でパズル タスクを解決しようとして、いくつかの問題が発生しました。

そのため、セットアップでスタックサイズを増やして、プログラムを再度実行しようとしました。しかし、それは他のエラーを引き起こします:Syntax error on line... エラー行は、述語に演算子 "not" が含まれる行です。

これが私のコードです:

このプロローグの動作が奇妙であることがわかりました...誰かが同じ問題を抱えていたのでしょうか?

0 投票する
2 に答える
516 参照

prolog - Prolog 論理パズル & 制約プログラミング

このパズルを解くために、プロローグで 10 個の事実を定義するという宿題があります。

すでに 8 つの制約を定義しており、解空間を 15 に減らしています。しかし、最後の 2 つの事実を定義する方法がわかりません。

たとえば、ファクト10に対してそのようなソリューションを試しました。

これによりソリューション スペースが縮小されますが、その後も、縮小されたソリューション セットに含めるべきではない要素が含まれています。

この関数を使用して、ソリューション セットのサイズを取得しています

そして、これはソリューションセット要素の場合

この 2 つの事実をどのように説明すればよいか、私には考えが残っていません。誰かが助けることができれば、私はそれを感謝します:)。

私の英語で申し訳ありませんが、それは私の母国語ではありません。

0 投票する
3 に答える
502 参照

prolog - バートランド・ラッセル・パズル

次のキャリバンの問題を解き、各手がかりを「忠実に」プロローグに変換します。つまり、可能な限り忠実に変換します。

抽象化の簡単な演習として、4 つの無意味な記号 a、b、c、および d が、同じ順序で無意味な記号 w、x、y、および z に対応すると仮定し、さらに次のように仮定します。

a が x でない場合、c は y ではありません。
b が y または z の場合、a は x です。
c が w でない場合、b は z です。
d が y の場合、b は x ではありません。
d が x でない場合、b は x です。

2 組の記号が対応する順序は?

次のコードを試しました:

しかし、それはfail.Anyヘルプをいただければ幸いです。

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

prolog - 制約ロジック プログラムでの奇妙な警告と計算結果

最初に、プログラム全体を投稿して申し訳ありませんが、私にはわからないので、どの部分が無関係なのかわかりません。これらは、SWI-Prolog での同じロジック パズルの 2 つのわずかに異なる実装です。1 つ目は成功し、2 つ目は失敗し、失敗の理由がわかりません。

パズル:

私は次のアプローチを選択します

最初の非効率的な後続の実装:

これは機能し、正しい結果が得られます。しかし、解決手順の節をより効率的にするために並べ替えようとすると (これは 2 番目の実装です)。

ファイルを読み込もうとすると、変数が割り当てられていないという警告が表示されます。

計算は を返しますfalse。しかし、同じ結果を返すべきではありませんか? 違いの理由がわかりません...