优化算术表达式计算的算法

假设我有一个由整数变量和算术运算形成的表达式:加法,减法和乘法.我知道每次乘法需要M秒,每次加法/减法需要A秒.是否有一种算法能够以最有效的方式计算表达式,以便对变量进行任意赋值? (假设我只能在内存中存储一​​个号码).

例:

M = 10

A = 1

表达式:a * a a * b b * b.

最初,它有3次乘法和2次加法,因此总时间为3 * M 2 * A = 32

但是,我们可以构建一个等价表达式(a b)*(a b)-a * b,它只有2次乘法和3次加法,因此总计算时间为2 * M 3 * A = 23.

最佳答案 您想应用总和产品算法.

看到:

http://www.isiweb.ee.ethz.ch/papers/docu/aloe-2001-1.pdf

点赞