J'ai un algorithme récursif avec une complexité temporelle équivalente à choisir k éléments parmi n avec répétition, et je me demandais si je pouvais obtenir une expression big-O plus simplifiée. Dans mon cas, peut être supérieur à et croît indépendamment.
Plus précisément, je m'attendrais à une expression exponentielle explicite. Le mieux que j'ai pu trouver jusqu'à présent est basé sur l'approximation de Stirling , donc je peux l'utiliser, mais je me demandais si je pouvais obtenir quelque chose de plus agréable.
Réponses:
Edit: Cette réponse est pourk<n . Sans borne k en termes de n l'expression est illimitée.
Si alors votre expression devient . Notez que par la formule de Stirling pour tout où est l'entropie binaire. En particulier . Nous avons donc pourk=n−1 O((2(n−1)n−1)) 0<α<1
Puisque la borne supérieure est le pire des cas (je le laisse comme un exercice pour le montrer), votre expression est .k=n−1 O(4nn√)
la source
Wolfram dit que Sondow (2005) [1] et Sondow et Zudilin (2006) [2] ont noté l'inégalité: pour un entier positif et un nombre réel.
On peut alors utiliser avec et .
Ensuite, nous avons
Maintenant, l'expression binomiale a la valeur la plus élevée au milieu du triangle de Pascal. Donc, dans notre cas, ou à .n+k=2k k=n
En substituant que dans l'inégalité ci-dessus, nous obtenons: .
Par conséquent, une limite plus étroite est .
Vous pouvez également voir que la limite inférieure de la valeur maximale est
Références:
[1] Sondow, J. "Problème 11132." Amer. Math. Mensuel 112, 180, 2005.
[2] Sondow, J. et Zudilin, W. "Constante d'Euler, q-logarithmes et formules de Ramanujan et Gosper" Ramanujan J. 12, 225-244, 2006.
la source