prolog

    1

    1答えて

    私は両方のバックチェーン手順を描くことで、より効率的なメンバの実装を決定しようとしています。 標準実装: isMember(X,[X|Tail]). isMember(X,[H|Tail]) :- isMember(X,Tail). 追加実装:(私のクラスのノートより) appendMember(X,List). appendMember(X,List) :- myAppend(List1

    2

    2答えて

    私は面積を計算する次の関数を持っています。 3つのパラメータを受け取ります。最初はnの場合を表し、2番目は周囲のラジオを表し、3番目の場合は結果を返します。 第1入力が1より大きい場合、それは機能しません。 この私のコード: as(1, [X], A) :- A is (sqrt(3.0) * (X*X)) - (3.14 * (X*X))/2. as(N, [H|_T], A) :-

    1

    1答えて

    、すなわち inBox(a,b). inBox(b,c). inBox(c,d). INBOX(x、y)はmeansbox xはボックスyにある、あなたが他のボックス内のボックスの束を持っていると仮定する。今は、あるボックスが別のボックスの内部にあるかどうかを判断するメソッドを記述したいと思います。 insideBox(a、d)=真はaが内側のbで内側のcの内側にあるので真である。 ins

    4

    3答えて

    nの可能なすべてのナイトポジションの計算ソリューションが正確なパスを知っているときに、Prologのバックトラッキングに問題があります。 私の解決策は、最初の結果の一部を印刷し、不可能な結果を​​探している間は終了しません。 これは私のコードです: move([X, Y], [A, B]) :- X + 1 < 8, Y + 2 < 8, A is X + 1, B is Y + 2. move

    0

    3答えて

    私のリストには要素として多くのファクトが含まれています。リストのメンバーであるかどうか検索したいと思います。 ここで私のプログラムでエッジファクトを定義しました。次に、ノード1がリストのメンバーであるかどうかを確認したいと思います。 ?-my([edge(1,2),edge(2,3),edge(1,4)],1,L). false.

    2

    2答えて

    プロローグの基本的なプログラミングを学んでいますが、いくつかの問題があります。私はプロローグでappendを使ってリストから最初のX個の要素を削除しています(Xは入力した任意の乱数です)。リストが空で、リストに含まれている以上のものを要求したときに、プログラムは問題に遭遇します。それは[]を返すべきです。入力例: 取り外し可能な(R、[1,2,3、A]、5)

    1

    1答えて

    ファイルを読み込んだ後、最初のファイルの結果に従って別のファイルを書きたいのですが、最初のファイルを読み込んだらすぐにプログラムは終了します。私はなぜそれが起こったの原因を捜したが、私は何も発見していない。私は誰かが私を助けることができるかどうかを知りたいです。 これはコードです: main :- current_prolog_flag(argv, Argv), [H|_T]

    -1

    1答えて

    私の家族のデータベースです。しかし、私はこのデータベースから双子の乳児を見つけることができません。私はこの質問を受けています:家族のデータベースに双子を見つけるために関係双子(Child1、Child2)を定義します。 family( person(tom,right,date(17,may,1950),works(mathematician)), person(ann,righ

    -4

    1答えて

    私はプロローグを勉強し、私はこの演習を解決するための問題を得た: 私は(リストの変数、リスト)の関係を呼び出しAAメソッドを作成する必要が EX: list(a,b) list(c,b) list(c,h) を 戻る変数の関係(C、X) X= [[c,b],[c,h]] ターが含まれているすべてのリストでなければなりませんNK事前にあなたの助けのためにここで

    2

    2答えて

    チェスをした人のグループがあるとします。あなたは決して誰にも負ける(無敗の)プレーヤーが存在するかどうかを判断したい。事実がウォン(ジェームス、トム)として与えられたと仮定しよう。ウォン(ジェイムス、ピーター)、ウォン(クレイグ、トム)。失われた(ピーター、トム)。すると、条件に応じてプレーヤーXが失われたことはありません。 undefeated(X) :- \+ won(_, X), \+ lo