Comment puis-je prouver que n! n'est pas dans O (n^p) pour un nombre naturel constant p? Et est (n k) (n choisir k) dans O (n^p), pour tout k?Prouvez que n! n'est pas dans O (n^p) pour un nombre naturel constant p
Répondre
Vous pouvez prouver que n! n'est pas dans O (n^p) pour tout nombre naturel constant p, en montrant que vous pouvez toujours choisir n (pour une constante p fixe), de sorte que n! > n^p
.
(pour avoir une idée, prendre quelques faibles valeurs de p et n complot! Contre n^p)
Le raisonnement pour la deuxième partie suit les mêmes lignes. Lié (n choisissez k) puis utilisez la première partie.
Astuce: Casablanca comme noté, vous pouvez utiliser Stirling's approximation
Pour être précis, * pour tous * n> n0, où n0 est un nombre entier positif. Vous ne pouvez pas choisir une seule valeur n. Contre-exemple: p = 10, n = 2. 2^10> 2 !. –
Je suis désolé, je devrais réviser ce commentaire. Pour * réfuter * n! = O (n^p): donné p, alors pour * any * n0> 0, il existe une (unique) valeur n> n0 telle que n! > n^p. –
Stirling's approximation dit que
log (n!) = n log n - n + O(log n) = O(n log n)
Mais
log (n^p) = p log n = O(log n)
pour p
constante. Clairement n!
croît plus vite que n^p
et par conséquent ce n'est pas O(n^p)
.
Vous pouvez également noter sans utiliser l'approximation de stirlings que log (n!) = Log (n) + log (n-1) + ... + log (2) + log (1). log (1) = 0, donc tous les autres termes doivent être _at least_log (2) ou plus. Cela donne log (n!)> N * log (2), ce qui signifie bien sûr que c'est O (n). Comme vous l'avez noté, c'est en fait O (n * log n), mais O (log n) croît aussi beaucoup plus vite que O (log n). –
+1. J'essayais de ne pas faire les devoirs pour eux;). mais j'aurais probablement dû faire allusion à l'approximation factorielle de Stirling. –
Edit (3/2011) - (! N) méthode plus simple en utilisant uniquement le calcul simple,
Une façon de montrer O ne correspond pas à O (n^p) est de comparer le journal de n! avec le journal de n^p.
ln (n!) = Somme (ln (i)) {i: 1 à n}
ln (n^p) = p * ln (n)
Cela ne semble pas pour aider puisque nous ne savons pas quelle serait la somme des logs. L'astuce consiste à calculer une borne inférieure en utilisant l'intégrale de ln (i) di de 1 à n
Ceci peut être vu dans l'image ci-dessous que le ln (x) en noir est inférieur à la fonction de pas de somme dans bleu.
Étant donné que l'intégrale indéfinie de ln (i) di est i * ln (i) - i + C, nous pouvons intégrer de 1 à n pour obtenir:
n * ln (n) - n + 1 comme borne inférieure.
Et parce que p peut être choisi qui est plus grand que possible n:
O (p ln (n)) < O (n ln (n)), O (n^p) < O (n!)
note: l'intégration de ln (n) pour obtenir une approximation de ln (n!) Est la base de l'approximation de Stirling. C'est une approximation plus grossière et si vous continuez en prenant l'anti-log: n! > = e * (n/e)^n, alors que Stirling a sqrt (2 * pi * n) au lieu de e.
Intégration de 1 à n + 1 vous donnerait une limite supérieure (la fonction étape de somme correspondrait à l'intérieur du graphique de ln (n))
- 1. En analyse asymptotique, Montrer que: - O (f (n) + g (n)) = O (max {f (n), g (n)})
- 2. O * p = new O [5]; Qu'est-ce que p pointe vers?
- 3. Calculer les bénéfices plus rapidement que O (n!)
- 4. Frontière de dureté NP
- 5. donné un nombre p, trouver deux éléments dans le tableau dont le produit = P
- 6. Générer un nombre naturel de PHP lcg_value()?
- 7. Démontrer ou réfuter n^2 - n + 2 ∈ O (n)
- 8. Comment soustraire un nombre constant d'une colonne
- 9. Comment le faire fonctionner dans O (n)?
- 10. Comment visualisez-vous la différence entre O (log n) et O (n log n)?
- 11. Algorithme de distance de Levenshtein meilleur que O (n * m)?
- 12. O (N log N) Complexité - Similaire à linéaire?
- 13. Existe-t-il un terme abrégé pour O (n log n)?
- 14. Comment puis-je prouver que 1/n est O (1)?
- 15. Qu'est-ce que la notation Big-O? Comment trouvez-vous des chiffres comme O (n)?
- 16. Qu'est-ce que la notation d'ordre f (n) = O (g (n))?
- 17. Existe-t-il une fonction R pour obtenir le nombre de permutations de n objets prenant k P (n, k)?
- 18. Évite O (n) des requêtes avec Django
- 19. <o:p> </o:p>< o : p > & nbsp;</o : p > erreur d'affichage
- 20. Haskell, la liste du nombre naturel
- 21. Le pire des cas vs O (n)
- 22. Python lisant les lignes w/o \ n?
- 23. Supprimer des espaces vides dans une chaîne dans O (n)
- 24. comment prouvez-vous que le grand thêta d'une série est son premier terme?
- 25. Java Stack/Nest Count
- 26. Pourquoi passer du planificateur O (1) à CFS qui est O (log N)?
- 27. Sélection k * k * p de sous-tableau tableau p * n dans Fortran
- 28. Nombre de chiffres pour N ** K
- 29. Question de l'interview: Programme C pour trier un tableau binaire dans O (n)
- 30. Union, Intersection, grande différence IntSet en O (m + n) fois
@Mitch: Si vous avez fait qu'une réponse, je voudrais Upvote il. –
@Tony: ["la balise homework, comme les autres balises" meta ", est maintenant déconseillée."] (Http://meta.stackexchange.com/q/10812) –