Это может быть наивный вопрос, но я новичок в концепции нотации и сложности Big-O и не нашел ответа на это. Я имею дело с проблемой, для которой алгоритм (2n + 1)! время проверяет состояние. Могу ли я сказать, что сложность проблемы O (n!) Или сложность O ((2n + 1)!)?Являются ли две сложности O ((2n + 1)!) И O (n!) Равными?
ответ
Использование Stirling's approximation:
n! ~ (n/e)^n * sqrt(2 * pi * n)
Тогда
(2n + 1)! ~ ((2n + 1)/e)^(2n + 1) * sqrt(2 * pi * (2n + 1))
>= (2n/e)^(2n) * sqrt(2 * pi * 2n)
= 2^2n * (n/e)^(2n) * sqrt(2) * sqrt(2 * pi * n)
= sqrt(2) * (2^n)^2 * ((n/e)^n)^2 * sqrt(2 * pi * n)
И теперь это довольно понятно, почему нет никакой надежды O((2n + 1)!)
быть O(n!)
: экспоненциальные факторы гораздо хуже. Это больше похоже на O((2n + 1)!)
O((n!)^2)
.
Вот определение: https://en.wikipedia.org/wiki/Big_O_notation. Таким образом, нам нужно проверить, существует ли такая константа с и n0, что:
(2n+1)! < cn! for n > n0
Наглядно от наблюдения, как (2n + 1)! и н! себя:
http://www.wolframalpha.com/input/?i=n!+%3E%282n+%2B1%29!
(2n + 1)! просто идет в два раза быстрее, поэтому независимо от «c» он всегда будет достигать n !. Поэтому вы не можете упростить n !.
Вам нужно посмотреть (2n + 1)!/N !. Просто сравнивая это, можно было бы верить, что n = o (3n). – Teepeemm
Ну, но действительно O (3n) = O (n). – BartoszKP
Я согласен, но если я изменю свой метод, чтобы изучить http://www.wolframalpha.com/input/?i=3n+%3E+n, в противном случае меня могут привести к заключению. – Teepeemm
(2n + 1)! = n! (n + 1) ... (2n + 1)
O ((2n + 1)!) = O (n!) O ((n + 1) ... (2n + 1))
==>
O (1) = о ((п + 1) ... (2n + 1))
O (п!) = о ((2n + 1)!)
@icepack с вашим оправданием можно заключить, например, O (2n + 1) больше O (n), однако, как я знаю, O (2n + 1) = O (n). – Barpa
@ Барпа Нет, это не так. Это мало-о в последних двух строках с правой стороны. – SomeWittyUsername
'=' не имеет смысла в последних двух строках. Вы имеете в виду '⊂'. – Teepeemm
Пусть (N, c) - любая упорядоченная пара положительных постоянных. Пусть n - любое целое число такое, что n> N и n> c.
Затем (2n + 1)! > (2n + 1) * n! > cn!
Таким образом, для любой пары положительных постоянных (N, c) существует n> N такое, что (2n + 1)! > cn !, так что (2n + 1)! не является O (n!).
O ((2n + 1)!) Содержит функцию (2n + 1) !, которая не входит в O (n!), Поэтому O ((2n + 1)!) И O (n!) не то же самое.
(Я согласен с желанием LaTeX.)
- 1. Почему O (n) равно O (2n)
- 2. Примеры алгоритмов, которые имеют O (1), O (n log n) и O (log n) сложности
- 3. Изменение сложности от O (N) к O (1)
- 4. Почему O (2n^2) и O (100 n^2) такие же, как O (n^2) в сложности алгоритма?
- 5. Большой O-O (N^2) или O (N^2 + 1)?
- 6. Почему функция O (2n^3), а не O (n^3)?
- 7. O (fib n) алгоритмы сложности?
- 8. Is 2^(2n) = O (2^n)
- 9. Выбор O (n) над O (1), когда для всех n, O (1) быстрее, чем O (n)?
- 10. Написать программу для обратной строки O (N) временной сложности и O (N) пространства сложности
- 11. O (n log n) Алгоритм сложности времени?
- 12. Is 2^2n = O (2^n)?
- 13. Какой класс сложности O (N^N)?
- 14. Что такое большой O для сложности O (sqrt (n) * log (sqrt (n))) + O (n)
- 15. Практическое различие между O (n) и O (1 + n)?
- 16. Вычисление ноты Not-O, O (n) * O (log n) = O (n log n)
- 17. Алгоритм с О (п журнал п) и O (1) пространство сложность против O (N) времени и O (N) пространства сложности
- 18. Это O (n^2) или O (1)?
- 19. Перемещение бит O (1) или O (n)?
- 20. O (log_2 (n)) = O (log_10 (n))?
- 21. Большая сложность O, когда две функции f (n) [O (1)] и g (n) [O (n)] умножаются вместе
- 22. Замечание Big O O (nlgn) такое же, как O (n + nlgn) с точки зрения вычислительной сложности?
- 23. clojure subvec O (n) вместо O (1)?
- 24. Является ли O (n^n) и O (n!) Эквивалентным?
- 25. Сложность Время O (n) или O (n (n + 1)/2)
- 26. Между O (nlog * n) и O (n)?
- 27. Расчет вычислительной сложности (Big-O)
- 28. Определение сложности Big-O
- 29. Как сделать операции HashSet равными O (n)?
- 30. Сумма порядка O (1) + O (2) + .... + O (n)
Это вопрос домашней работы, не так ли? – mor
Нет, это часть моей дипломной работы. – Barpa