• 締切済み

Prologの単一化について

(1)p([X|Y]) と p([a]) (2)p(a, [b, c], X)  と p(Y1, [Y2|Y3], Y3) (3)?-p([a, b, c], X). p([X|Y], N) :- p(Y, N1), N is N1+1 . (4)?-p([a, b, c], [d, e], X) . p([X|A], B, [X|C]) :- p(A, B, C). (5)?-p([a, b, c], [], X). p([X|R], Y, Z) :- p(R, [X|Y], Z) の述語についてですが、それぞれ単一化すると各変数はどうなるでしょうか。 (3)~(5)については、質問と規則の頭部との単一化です。 どの変数も単一化の前に値を持っていないとします。 教えてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

少なくとも (1) と (2) に関しては単純にユニフィケーションするだけだから人に聞くまでもないと思うんだけど.... どこがわからないんでしょうか?

関連するQ&A

  • R言語に関わる確率変数の問題についてです。

    Rの関数によるプログラミング関係についての質問です。次の問題が分からないのでどなたか教えていただけませんか。 確率変数X、Yは正規分布N(0,1),N(1,4)に従っている。つぎの値をRの 関数を使って答えよ。 (a) p1=P(X≦1) (b) p2=P(X>1) (c) p3=P(Y≦1) (d) P(X≦α)=0.95となるα (e) 自由度15のt分布に従う確率変数ZについてP(Z≦β)=0.99となるβ

  • 数学(ベクトル)の問題

    http://okwave.jp/qa/q8022847.html のNO.7の回答より、 さらに途中式を書いたのですが、 L^2 = m(t-n(s))^2-(a1^2+b1^2+c1^2 ) {(c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s)/(a1^2+b1^2+c1^2 )}^2+(a2^2+b2^2+c2^2 ){(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2 )} }+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } n(s)={c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}/(a1^2+b1^2+c1^2 ) = m(t-n(s))^2-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2/(a1^2+b1^2+c1^2 )+(a2^2+b2^2+c2^2 ){(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}/{(a2^2+b2^2+c2^2 )} }+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } = m(t-n(s))^2-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2/(a1^2+b1^2+c1^2 )+(a2^2+b2^2+c2^2 )(s^2 )+2s{c2(z2-z1)+b2(y2-y1)+a2(x2-x1)}+{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 } ところで {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)+(a1a2+b1b2+c1c2)s}^2 = {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2 +2{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s +{(a1a2+b1b2+c1c2)s}^2 = {c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2 +2{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s +(a1a2+b1b2+c1c2)^2 (*s)^2 これより、 L^2= m(t-n(s))^2+s^2 {(a2^2+b2^2+c2^2 )-(a1a2+b1b2+c1c2)^2/(a1^2+b1^2+c1^2 )} +s[2{(c2(z2-z1)+b2(y2-y1)+a2(x2-x1))-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}(a1a2+b1b2+c1c2)s/(a1^2+b1^2+c1^2 )}] +{(x2-x1)^2 }+{(y2-y1)^2 }+{(z2-z1)^2 }-{c1(z2-z1)+b1(y2-y1)+a1(x2-x1)}^2/(a1^2+b1^2+c1^2 ) 簡単、 L^2 =m(t-n(s))^2+ps^2+p1s+p2 =m(t-n(s))^2+p(s^2+p1s/p)+p2 =m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2-(p1/p)^2 )+p2 =m(t-n(s))^2+p(s^2+p1s/p+(p1/p)^2 )-(p1)^2/p+p2 まで、計算したのですが(間違っていたら申し訳ありません)、 ここから、どのように q=-p1/2p が導出できるのかがわからないです。 (rは導出できました。) 数式だらけで分かりづらいと思いますが、計算ミスを指摘しつつ、導出過程も分かりやすくお願いします。

  • 統計学の問題について質問です

    問、XはN(a,b^2)に従う変数であるとする。 (1)Xがa以上の値をとる確立を求めよ。 (2)Xがa+4b以下の値をとる確立をpとする。Xがc以上の値をとる確率がpになるようなcを求めよ。 (3)YがN(0,1)に従って分布するようにYをXを用いて構成せよ。 の3問です。 出来れば説明も添えてくれると助かります。よろしくお願いします。

  • prolog言語で積分計算

    PROLOG計算 prolog言語で積分計算のできるプログラムを作っています。 積分定数Cを表示させるようにしているのですが 、3*x^3の積分の結果が 3* (x^2/2+c)+cとなってしまいます。 ()内のcを消すにはどーしたらよいでしょうか? プログラムは以下のように書きました。 t(x,x^2/2+c). t(Y ,Y*x+c) :- integer(Y). t(Y+Z,TY+TZ+c):- t(Y,TY),t(Z,TZ). t(Z*Y,Z*TY+c) :- integer(Z),t(Y,TY). t(Y^N ,(1/N)*Y^N1*TY+c):-integer(N),N1 is N+1,t(Y,TY). t(Y-Z,TY-TZ+c):-t(Y,TY),t(Z,TZ).

  • 3次元の三角形平面の内挿

    空間に三角形があります。 座標(x1,y1,z1),(x2,y2,z2),(x3,y3,z3) 値は(u1,u2,u3) 三角形平面内の場所x,y,z(例えば重心)を入れたらその値uが求まるようにしたいです。 つまり u=N1 u1 + N2 u2 + N3 u3 となるときの N1=a1 x +b1 y + c1 z + d1 N2=a2 x +b2 y + c2 z + d2 N3=a3 x +b3 y + c3 z + d3 の a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3を求めたいです。 2次元平面の三角形はよいのですが、3次元平面の三角形は分かりません。 よろしくお願いいたします。

  • prologについて

    emacsというソフトでprologについて勉強しているんですが、 times,plus,exp,mod を定義してから動作の確認をしたいのです。 (<- - (times 0 ?x 0)) (<- (times (s ?x) ?y ?z) (times ?x ?y ?xy) (plus ?xy ?y ?z)) (<- - (exp (s ?n) 0 0)) (<- (exp 0 (s ?x) (s 0))) (<- (exp (s ?n) ?x ?y) (exp ?n ?x ?z) (times ?z ?x ?y)) (<- - (mod ?x ?y ?x) (< ?x ?y)) (<- (mod ?x ?y ?z) (plus ?x1 ?y ?x) (mod ?x1 ?y ?z)) と定義したのですが、確認をするときにどのように確認したらよいのか教えて頂けますでしょうか?

  • 確率変数の独立性とV(X+Y+Z)=V(X)+V(Y)+V(Z)について

    いつもありがとうございます。高校数学の勉強をしています。数学Bの「確率分布」の章です。 教科書では次のように言っています。 「二つの確率変数XとYが互いに独立であるとき、分散Vについて V(X+Y)=V(X)+V(Y)が成り立つ。」これは証明があり理解できました。 続いて、「3つ以上の確率変数の独立性についても2つの場合と同様に定義される」と言います。 その後、次のような説明があります。 「確率変数X,Y,Zが任意の値a,b,cについてP(X=a,Y=b,Z=c)=P(X=a)P(Y=b)P(Z=c)を満たすとき、X,Y,Zは独立であるという。 このとき、X+YとZは互いに独立となり、 V(X+Y)=V(X)+V(Y)を繰り返し用いると、次のことが成り立つ。 確率変数X,Y,Zが独立ならば、 V(X+Y+Z)=V(X)+V(Y)+V(Z)」 上の「このとき、X+YとZは互いに独立となり」という部分がどうしても証明できません。 (1) あまりに自明なことなのに私がドつぼにはまってしまい苦しんでいるのか、 (2) もう少しレベルの高い勉強をしないと理解できないことなのか、 どちらかと思うのですが、なぜX+YとZは互いに独立となるのか教えてください。よろしくお願いいたします。

  • prologでの数式の簡単化

    prologで微分をするプログラムを作ったのですが計算した結果が、例えば、 0*x^2+a*(2*x^1*1)+(0*x+b*1)+0 のように無駄に長くなってしまいます。そこでこれを簡単化する述語simple(P)を作りたいのですがどのようにしたら良いでしょうか? ?- simple(0*x^2+a*(2*x^1*1)+(0*x+b*1)+0). 2*a*x+b yes できれば上のような動作がするぐらいのものが作りたいです。 少なくとも余計な0,1を除去するくらいはしたいのですが・・・ お願いします。

  • 凸多面体の性質について

    大学の数学の問題でわからない所があるので、教えてください。 R^nの多面体を{x∈R^n|Ax=b,x≧0}で定義します。 ここにA∈R^(m*n),b∈R^mで、Rは実数全体の集合、ベクトルの不等号は各成分ごとの不等式です。 また、多面体Pの端点をx∈P s.t. x=λy+(1-λ)z(λ∈[0,1])となるようなy,z∈Pが存在しない というように定めます。 今、P,QをR^nの多面体として P+Q={x+y∈R^n|x∈P,y∈Q} とする (1)P+Qは多面体であることを示せ。 (2)P+Qの端点はちょうどPとQの端点の和であることを示せ。 とりあえずP={x|Ax=b},Q={y|By=c}とおいてみたのですが、 C(x+y)=d となるような行列Cが見つかりません。 どなたかご教授ください。

  • ベキ乗平均とStolarsky meanをまとめる

    n個の正の数x[1]、…、x[n]に対して、それぞれp乗したものの和をnで割り、そして1/p乗したものは、 ベキ乗平均  {(x[1]^p+…+x[n]^p)/n}^(1/p) と呼ばれ、実数pに関して単調増加になることが知られています。 n=2のとき、{(x^p+y^p)/2}^(1/p) という形で、 p→-∞のとき最小値、 p=-1のとき調和平均、 p→0のとき相乗平均、 p=1のとき相加平均、 p→∞のとき最大値です。 また、Stolarsky meanと呼ばれるものがあって、 http://en.wikipedia.org/wiki/Stolarsky_mean によると、 f^(n)-1(n!・f[x[0],…,x[n]]) for f(x)=x^p なのですが、同様に実数pに関して単調増加になることが知られています。 2変数のとき、{(x^p-y^p)/p(x-y)}^{1/(p-1)} という形で、 p→-∞のとき最小値、 p=-1のとき相乗平均、 p→0のとき対数平均、 p=2のとき相加平均、 p→∞のとき最大値です。 2変数のとき、ベキ乗平均とStolarsky meanをまとめたものがあるようで、 E_r,s(x,y)={r(x^s-y^s)/s(x^r-y^r)}^{1/(s-r)} において、r=1とすると、Stolarsky mean E_1,s(x,y)={(x^s-y^s)/s(x-y)}^{1/(s-1)} になり、s=2rとすると、ベキ乗平均 E_r,2r(x,y)={(x^2r-y^2r)/2(x^r-y^r)}^{1/r}={(x^r+y^r)/2}^(1/r) になります。 ここでn変数のときのベキ乗平均とStolarsky meanをまとめたものはさすがにたいへんなので、 3変数のときのベキ乗平均とStolarsky meanをまとめたものを具体的に知りたく思うのですが。 なお、3変数のときのベキ乗平均は {(x^p+y^p+z^3)/2}^(1/p) で、3変数のときのStolarsky meanは僕の計算によると { 2x^p/p(p-1)(x-y)(x-z) + 2y^p/p(p-1)(y-z)(y-x) + 2z^p/p(p-1)(z-x)(z-y)} ^ {1/(p-2)} になりました。

専門家に質問してみよう