次の問題があります-カエデの合計を最小限に抑える必要があります。たとえば、私がこれを持っているとします:
EXPESSION:=A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
そして、私はいくつかの機能を使いたい
someFunction(式);
Sumのシンボルを返します(sum(A [i]、i = 0 .. 5)のように);
そのような機能は存在しますか?
次の問題があります-カエデの合計を最小限に抑える必要があります。たとえば、私がこれを持っているとします:
EXPESSION:=A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
そして、私はいくつかの機能を使いたい
someFunction(式);
Sumのシンボルを返します(sum(A [i]、i = 0 .. 5)のように);
そのような機能は存在しますか?
さて、既存の式を圧縮するために何かが必要だと思います。被加数、インデックス、およびインデックス範囲を指定する場合、 someFunction は項を減算し、それらの項の (未評価の) 合計を追加できます。
convert_to_Sum:= (ex, summand, index)->
simplify(ex - sum(summand, index) + Sum(summand, index))
;
例:
ex:= A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
convert_to_Sum(ex, A[i], i= 0..5);
Sum(A[i], i= 0..5)
Sum は大文字であることに注意してください。これは、式が既に存在する場合を処理しないことを認識しています。これは、主に関心のあるものである可能性があります。