Вы можете попытаться его увидеть или перейти от него более систематически. Предполагая, что мы делаем это с нуля, мы должны попытаться построить отношение повторения от определения функции.
Мы можем считать на данный момент очень простой машинной моделью, где арифметические операции и переменные поисковые запросы являются постоянным временем.
Пусть iter-cost
быть имя функции, которая подсчитывает, сколько шагов требуется, чтобы вычислить iter
, и пусть это будет функция p
, так как iter
«s окончание зависит только от p
. Затем вы должны иметь возможность писать выражения для iter-cost(0)
. Можете ли вы сделать это для iter-cost(1)
, iter-cost(2)
, iter-cost(3)
и iter-cost(4)
?
В целом, учитывая p
больше нуля, можете ли вы выразить iter-cost(p)
? Он будет в терминах констант и повторного вызова iter-cost
. Если вы можете выразить это как повторение, то вы можете лучше выразить это в закрытой форме.
Просто, чтобы быть педантичным, он находится в наборе программ O (p^2), говоря исключительно из технического определения. Дело в том, что оно также относится к гораздо меньшему множеству, и мы пытаемся убедить OP, что O (p^2) является способом, слишком свободным от верхней границы. – dyoo