假设我有一个由整数变量和算术运算组成的表达式:加法、减法和乘法。我知道每次乘法需要 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。