0
こんにちは私は問題に直面しています。私に3つの操作(+、 - 、*)があるとしましょう。 私はこれらの3つの演算子を使用して、与えられた引数リストのすべての可能な式を含む変数を生成したいと思います。与えられたリストのすべての可能な操作を生成するプロローグ
my_problem([1,2],X)
はそうで
X=1+2+3 X=1-2-3
X=1+2-3 X=1+2*3
X=1-2+3 ...
を返すとなり
X=1-2
X=1*2
X=1+2
my_problem([1,2,3],X)
を返します。
私はこの述語を使用して式を構築できることを知っています。
args_expr(Arg1,Arg2,Arg1 + Arg2).
args_expr(Arg1,Arg2,Arg1 - Arg2).
args_expr(Arg1,Arg2,Arg1 * Arg2).
この変数を生成するための巧妙な方法はありますか?助けやアドバイスに感謝します。
*すべての可能な式*ちょうど1回与える各値を使用するすべての式を意味しますか?そして、連想性が違いを生む場合、あなたはすべての可能性(例えば、X = 1 + 2 * 3、X = 1 + 2 * 3、X = 1 * 2 + 3)を望んでいますか? 、 'X = 1 *(2 + 3)'など)?あなたが何をしているのかはちょっと不明です。 – lurker