2011-12-30 3 views
1

У меня есть рекурсивная функция, и я пытаюсь понять ее сложность. обозначают P (n) - время выполнения функции (при задании параметра n). Я знаю, что: P (n) = n + (n-1) * P (n-1) [p (1) = 1]Сложность рекурсивной функции

Как выразить P (n) без использования P (...)?

+0

Если вы хотите понять, как решить такие рекурсивные равенства, вы можете прочитать эту статью в Википедии: http://en.wikipedia.org/wiki/Recurrence_relation#Solving. Кроме того, я считаю, что ваш вопрос относится к http://math.stackexchange.com/, поскольку он касается решения рекуррентного отношения: P (n) = n + (n-1) * P (n-1) [p (1) = 1] 'и не имеет ничего общего с программированием. – bezmax

+0

Это домашнее задание? – codeling

+0

@ Макс, обнаруживающий сложность выражения, очень сильно связан с информатикой и программированием в частности. – SomeWittyUsername

ответ

1

Это будет O (n n). Обратите внимание, что если вы начнете расширять выражение, вы получите элемент с мощностью n, увеличенный на 1 на каждой итерации. Это будет доминирующим элементом, поэтому другие могут быть отброшены для вычисления O(). Для более формального решения см. Ссылку, предоставленную @Max.

Смежные вопросы