Я знаю, что log n! дает сложность O (nlogn), но как exapnd выше? Второй может быть упрощен до (nlogn) !. Просьба пояснить это.Как мы можем развернуть (logn)! и (logn!)! определить сложности?
ответ
Обновление: Нет, вы не можете использовать (N ln N)!
в своей второй формуле. Причина объясняется ниже, используя первый случай.
С log version of Stirling approximation мы имеем
ln(z!) = (z+1/2) ln z - z + O(1)...
Обратите внимание, что дополнительный z
хранятся здесь, причина будет очевидно, в ближайшее время. Теперь, если мы позволим x = log N
,
(ln N)! = x! = exp(ln x!)
~ exp((x+1/2) ln x - x) = x^(x+1/2) exp(-x)
= (ln N)^((ln N)+1/2)/N
Дополнительный срок мы постоянно оказывается быть обратным N
, это, безусловно, оказывает влияние на сложность, так как мы не можем просто выбросить ехр чего-то. Если мы обозначим g(N)
для приближения выше и f(N) = (ln N)!
, то lim f(N)/g(N) = sqrt(2 pi) < inf
, так f = O(g)
Для (ln N!)!
, это немного сложнее, я использую Mathematica для проверки предела, и это говорит о том, что расширение
ln(z!) ~ (z+1/2) ln z - z + ln(sqrt(2pi))
достаточно. У меня нет общего правила, когда мы можем остановиться. И вообще, возможно, не удастся использовать только конечные термины. Но в этом случае мы можем.
Если вам нужна только свободная привязка, для первой формулы вы можете фактически отказаться от термина -z
, потому что (z+1/2) ln z > (z+1/2) ln z - z
.
Вы можете оценить верхнюю и нижнюю границы для (log(n))!
с использованием тождества вместе с оценками продукции.
Для верхней границы:
Для нижней границы:
Комбинированные вы получите:
Так, по крайней мере:
Очевидно, что (в) уравнения как-то лишняя вследствие нецелая индекса границ продукты.
Обновление: Связанные дается hwlau с использованием стерлингового приближения ниже (sqrt(log(n))/n
) и должна быть жесткими.
- 1. Интерпретация logn^logn?
- 2. Изменение сложности из О (п) -o (LOGN)
- 3. Анализ связи BIg O между странными математическими выражениями (logN)^logN и n/logN
- 4. Самая длинная битоническая подпоследовательность в сложности O (n * logn)
- 5. Is O (LogN) == O (3LogN)?
- 6. Докажите, что logn равно O (2^sqrt (logn))
- 7. Как временная сложность gcd равна Θ (logn)?
- 8. Медиана BST в O (logn) временная сложность
- 9. Как мы можем достичь последнего, например, 6 цифр N-го числа Фибоначчи в O (logN) времени?
- 10. BIg O Обозначение: n * logn
- 11. Delphi LogN и власть - суперэллипс функция - алгоритм
- 12. Сравнение O ((logn)!) И O (2^n)
- 13. Является ли O (logn) всегда деревом?
- 14. dificulty, решающий код в O (logn)
- 15. T (n) вложенного цикла, я получаю ответ как (logn + 1) (logn + 2), am i right?
- 16. Можем ли мы выполнить Quick sort с сложностью n-logn в худшем случае?
- 17. сбалансированное двоичное дерево, порядок и между операциями в O (logn)
- 18. Здание Суффикс-массив в O (n logn)
- 19. Высота дерева AVL в O (logn)
- 20. Какова временная сложность этого фрагмента кода? O (n) или O (logn * logn)
- 21. Сортировка наименьших элементов n/logn в массиве
- 22. Поиск, вставка, удаление и операции DeleteLast в LogN
- 23. Почему IN() считается операцией O (logN)?
- 24. Сравнение O ((logn)^const) с O (n)
- 25. Поиск максимального значения времени O (logn)?
- 26. Существуют ли std :: find и std :: map.find как O (logN)?
- 27. Merge рода неспособность работать в N LogN
- 28. Найти алгоритм в RBTREE в O (LOGN)
- 29. пример наличия O (logn)^2 время работы
- 30. C# Фракционный рюкзак o (n logn) solution
Вы можете использовать функцию Gamma заменить п! – vittore
Есть ли (logn)! = (log (n))! '? и '(logn!)! = (log (n!))! '? –