初心者のためのプログラミング言語ガイド Part8 at TECH
[2ch|▼Menu]
819:デフォルトの名無しさん
08/05/09 20:29:09
>>815
Prologのプログラムを一つ。X,Yが問題1、Yが問題2の解です。
a(Max,X,Y,Z) :- a(1,Max,0,0,0,X,Y,Z).
a(N,M,X,Y,Z,X,Y,Z) :- N>M.
a(N,M,S1,S2,S3,X,Y,Z) :- N=<M,1 is N mod 2,N2 is N+1,S11 is S1+N,S31 is S3+S11,a(N2,M,S11,S2,S31,X,Y,Z).
a(N,M,S1,S2,S3,X,Y,Z) :- N=<M,0 is N mod 2,N2 is N+1,S21 is S2+N,S31 is S3+S21,a(N2,M,S1,S21,S31,X,Y,Z).

関数型に較べると論理変数を思い切り冗長に取るのがPrologの特徴です。
2行目がやや難解。累計してきたものがX,Y,Zなのだ、といっています。
変数名の変化をよくみると書いてあることはわかります。



次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5495日前に更新/251 KB
担当:undef