Допустим, я беру вычисление, которое включает только сложение и умножение:
(a+b)*(c+d)
которые можно выполнить многими другими способами, Например,
a*(c+d) + b*(c+d)
a*c + a*d + b*c + b*d
В терминах сложения и умножения количество операций, необходимых для каждого из трех показанных примеров, равно (2,1) (3,2) (3,4) соответственно. Ясно, что если цель состоит в том, чтобы уменьшить общее количество операций, первая лучше. Есть ли способ по произвольному выражению найти порядок вычислений, требующий наименьшего количества операций?
Примечание: Этот вопрос повторно задается из SE.math для понимания и перспектив толпы CS.