Предположим, что я беру вычисление, которое включает только добавление и умножение:
(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.