Простите, но может кто-нибудь объяснить простому IT'шнику как вообще можно посчитать выражение, содержащее
сложений и
умножений, за число операций меньшее чем
?
Ну вот выражение
содержит 3 умножения и 2 сложения, а считать можно так:
Наверное, плохой пример, но больше ничего простого в голову не лезет.
Конечно, если числа в выражении подчиняются некоторым априорно известным функциональным зависимостям, то, очевидно, оптимизация возможна. Действительно, пусть все
равны, тогда вынося за "скобки" достаточно будет произвести лишь операций (кстати, уже в этом случае получается, что изначальное предположение-теоремка неверна...)
Это предположение верно в случае, если
,
- независимые, заранее неизвестные. Ну, например, если они все на вход поступают.
И ещё, в первоначальной версии заголовка темы упоминалась теория графов, но связь с ней почему-то (почти) не обсуждается... Как переформулировать задачу в терминах этой теории?
Каждому алгоритму можно поставить в соответствие орграф. У этог графа будет столько истоков, сколько есть входных переменных, каждая вершина, кроме стока, помечена операцией, и в нее входят ребра из вершин, соответствующих операндам.