![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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を除去するくらいはしたいのですが・・・
お願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんな感じでどうでしょう。
(かなり無駄がある気がしますが)simple(X^0,1).
simple(X^1,X).
simple(0*X,0).
simple(X*0,0).
simple(1*X,X1) :- simple(X,X1).
simple(X*1,X1) :- simple(X,X1).
simple(0+X,X1) :- simple(X,X1).
simple(X+0,X1) :- simple(X,X1).
simple(X*Y,Z) :- simple(X,X1),not(X=X1),!,simple(X1*Y,Z).
simple(X*Y,Z) :- simple(Y,Y1),not(Y=Y1),!,simple(X*Y1,Z).
simple(X+Y,Z) :- simple(X,X1),not(X=X1),!,simple(X1+Y,Z).
simple(X+Y,Z) :- simple(Y,Y1),not(Y=Y1),!,simple(X+Y1,Z).
simple(X,X).
?- simple(0*x^2+a*(2*x^1*1)+(0*x+b*1)+0,X).
X = a*(2*x)+b
Yes
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- 物理学 『数か物か』 4 2022/06/13 06:54
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- C言語・C++・C# numpyスライス機能を使った数値計算 2 2023/05/08 16:01
- 統計学 確率統計の問題です。 3 2022/04/07 04:39
- 数学 都市経済学の問題です。わかる方教えてください。 地主が得る地代を増やすために、都市の端までの距離 x 2 2023/07/18 17:41
- 統計学 不偏分散について 3 2022/03/29 15:57
- 物理学 単位変換?次元解析?について質問です 1 2022/04/10 21:31
- Excel(エクセル) ユーザー関数の自動計算(excel2003) 1 2023/02/06 06:46
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リファラーの取得方法
-
グローバルIPアドレスの取得。
-
perlの環境変数 ENV{'REMOTE_A...
-
DBを10件毎に表示ページング...
-
6月の第2 第4火曜日は何日...
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
週2回のペースって だいたい何...
-
毎○曜日って、使いますか?
-
Perl の外部モジュールの利用方法
-
[C#]ListView一覧表示時の幅設...
-
エクセルで相対パスの書き方を...
-
AccessVBAで「このフィールドに...
-
[Excel] ある日の曜日が当月の"...
-
perlのcgiで、変数の中身を表示...
-
バイナリファイルのアップロード
-
シングルサインオンのような仕...
-
土曜日の26時って何曜日の何時...
-
エクセルで毎月第2週日の水曜日...
-
Consolidateメソッドの引数のSo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クライアントのIPとマシン名を...
-
HttpClientを利用してのサービ...
-
webサーバでクライアントを特定...
-
社外からのアクセスかどうか判...
-
BASE64でエンコードしてPOSTし...
-
携帯端末向け サーバサイドCook...
-
Perlでの$ENV{REMOTE_ADD}の信...
-
IPとホスト名の変換について
-
プロキシ経由でNet::FTPを利用...
-
Androidアプリで外部データベー...
-
mod_rewriteの環境変数を埋め込...
-
prologでの数式の簡単化
-
perlの環境変数 ENV{'REMOTE_A...
-
URLConnection Timeoutエラー
-
プロキシサーバ経由を拒否したい
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
6月の第2 第4火曜日は何日...
-
DBを10件毎に表示ページング...
おすすめ情報