整数変数と算術演算 (加算、減算、乗算) で形成された式があるとします。各乗算には M 秒かかり、各加算/減算には A 秒かかることがわかっています。変数への任意の代入に対して最も効率的な方法で式を計算するアルゴリズムはありますか? (メモリに保存できるのは1つの数字だけだと仮定します)。
例:
M=10
A=1
式: a*a+a*b+b*b.
最初は、3 回の乗算と 2 回の加算があるため、合計時間は 3*M+2*A=32 です。
ただし、2 回の乗算と 3 回の加算しかない同等の式 (a+b)*(a+b)-a*b を作成できるため、合計計算時間は 2*M+3*A=23 になります。