問題タブ [clpfd]
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 - プロローグ: ランダムなラベル付け
制約を使用して Sicstus Prolog で書かれたプログラムがあります。私の目標は、labeling/2 およびその他の方法を使用して、変数のランダムなインスタンス化を取得することです。
例:
私が使用する場合
得られる最初の結果は、X = Y = Z = 0 です。X、Y、Z の値のランダムなセットを返す最良の方法はどのように考えられますか?
prolog - Prolog でペアノ数 s(N) を整数に変換する
チュートリアルで論理数のこの自然数評価に出くわしましたが、頭痛の種になっています。
このルールは大まかに次のように述べています:N
が自然数である場合、そうでない場合は、の内容が になるまで再帰的にルール0
に送り返そうとします。そうでない場合は自然数ではありません。s/1
0
s(0)
そこで、上記のロジックの実装をテストして、 as1
およびs(s(0))
asを表現したい場合はうまくいくと思いましたが、代わり2
に に変換できるようにしたいと考えています。s(0)
1
私は基本ルールを考えました:
ここに私の質問があります: s(0) を 1 に、s(s(0)) を 2 に変換するにはどうすればよいですか?
回答済み
編集:私が受け入れた答えが私に向けた実装の基本ルールを変更しました:
これで思い通りに使えるようになりました、ありがとうございます!
prolog - 初心者-3と5の倍数を追加します
1000未満の3と5のすべての正の倍数の合計を見つけようとしています。5の倍数の合計から3の倍数を削除することになっている部分を追加した後、gprologはクエリ?- sigma(1000,N).
問題は明らかにsigma5にありますが、私はそれを完全に見つけることができません。
私のコードの何が問題になっていますか?
prolog - プロローグで算術式の評価を行う方法は?
私はプロローグで算術式を解こうとしています(実装-Eclipseプロローグ)。解く算術式は次のようになります。
Xは計算される値であり、他のすべて(A、B、C、D、E)はすべて数値です。
例:5 *(3 + 2 * X)+ 2 * X = 39、コンピューティングでは、Xに値2を割り当てる必要があります。
Prologに入力されるクエリ(目標)は、次の形式を取ります。
「結果」と「X」の値は、一緒に結び付ける(割り当てる)必要があります。これを行うためのプロローグプログラムを作成するにはどうすればよいですか..?
ありがとうございました。
prolog - ゴール/クエリ内の変数の数が異なる場合の解決方法 - Prolog Constrain Solver
これは、プロローグ制約解決メカニズムを使用した、古典的な SENDMORY crypt-arithmetic problem solutiong のスニペットです。
これを実行するには、次のような目標/クエリを送信します。
そして、それは私に数字の可能な解決策を返します.
ここで、私の質問は、このように変数 (S、E、N など) を「ハードコーディング」したくないということですが、目標/クエリは変数の数を示します。たとえば、渡すクエリが次のような場合:
次に、SENDM の値のみを計算し、他の変数は適用できないと想定する必要があるため、それらの変数に 0 を割り当ててから計算を続行します。次にクエリを実行するときは、クエリで異なる数の変数を渡す場合があります..例のように:
プログラムは同様に計算する必要があります。
私が達成しようとしているのは、上記のシナリオのより一般化された問題ソルバーです。これに関する指示は本当に感謝しています。私はプロローグが初めてで、ECLIPSE 制約ソルバーを使用しています。ありがとうございました。
list - 整数のリストを正の整数のリストと負の整数のリストに分割する
Prolog で、整数のリストを正の整数のリストと負の整数のリストに分割する述語を作成しようとしています。
期待される結果を含むクエリの例:
これは私がこれまでに得たコードです:
私は自分が間違っていることを理解できないようです。
prolog - SWIで動的サイズ順列を生成-エラーのあるProlog結果:グローバルスタック外
私はこのコードを使用して複数の順列を生成しようとしています:
それは私にすべての結果を返しますが、最終的にはクラッシュしますERROR: Out of global stack
list - シンプルなプロローグ プログラム。取得エラー: >/2: 引数が十分にインスタンス化されていません
との位置にある要素が等しいposAt(List1,P,List2)
かどうかをテストする Prolog 述語を作成しました。P
List1
List2
テスト時:
の出力を期待してX = 2
いましたが、代わりに次のエラーが発生しました。
ERROR: >/2: Arguments are not sufficiently instantiated
このエラーが発生するのはなぜですか?
prolog - Prologでロジックパズル(黒どこ、黒いセルはどこですか)を解く
パズルを解くのに問題があります。このパズルの解決策はどこにも見つかりませんでしたが、Prologで書き込もうとしましたが、解決策は速くないと思います(すべての解決策を生成し、不可能または正しくない場合は削除します)。これが私の問題です:(そのパズルの名前を見つけました。ここにそのパズルのすべてのルールへのリンクがあります:http://en.wikipedia.org/wiki/Kuromasu)。今、私は別の質問があります。どの方法が非常に簡単に記述でき、Prologでそれを解決するのが非常に速いでしょう。フィールドのリストを無向グラフに変換することを考えましたか、それともリストを垂直方向に(頭から頭へ)検索する別の方法がありますか?
の:
結果:
matrix - プロローグの行列乗算
行列を乗算するコードを見つけました。
次のように入力すると、次のmult([[1,2],[3,4]],[[5,6],[7,8]],X).
ようになります X = [[19, 22], [43, 50]].
しかし、どうすれば入手できますかX = [[1*5+2*7, 1*6+2*8], [3*5+4*7, 3*6+4*8]] .
PS私はプロローグが初めてです。ありがとう!