web-dev-qa-db-fra.com

Est-ce que log (n!) = Θ (n · log (n))?

Je dois montrer que log ( n ! Θ ( n · log ( n ))) ==.

Un indice a été donné que je devrais montrer la limite supérieure avec n n et affiche la borne inférieure avec ( n /2)( n /2). Cela ne me semble pas si intuitif. Pourquoi serait-ce le cas? Je peux certainement voir comment convertir n n à n · log ( n ) (c'est-à-dire, consignez les deux côtés d'une équation), mais c'est un peu en arrière.

Quelle serait la bonne approche pour s'attaquer à ce problème? Dois-je dessiner l'arbre de récurrence? Il n'y a rien de récursif à ce sujet, donc cela ne semble pas être une approche probable.

197
Mark

Rappelez-vous que

log(n!) = log(1) + log(2) + ... + log(n-1) + log(n)

Vous pouvez obtenir la limite supérieure en

log(1) + log(2) + ... + log(n) <= log(n) + log(n) + ... + log(n)
                                = n*log(n)

Et vous pouvez obtenir la limite inférieure en faisant la même chose après avoir jeté la première moitié de la somme:

log(1) + ... + log(n/2) + ... + log(n) >= log(n/2) + ... + log(n) 
                                       = log(n/2) + log(n/2+1) + ... + log(n-1) + log(n)
                                       >= log(n/2) + ... + log(n/2)
                                        = n/2 * log(n/2) 
269
Mick

Je me rends compte que c’est une très vieille question avec une réponse acceptée, mais aucune de ces réponses n’utilise réellement l’approche suggérée par la suggestion.

C'est un argument assez simple:

n! (= 1 * 2 * 3 * ... * n) est un produit de n nombres inférieurs ou égaux à n. Par conséquent, il est inférieur au produit de n nombres tous égaux à n; c'est-à-dire n^n.

La moitié des nombres - c.-à-d. n/2, - dans le produit n! sont supérieurs ou égaux à n/2. Par conséquent, leur produit est supérieur au produit de n/2 nombres tous égaux à n/2; c'est-à-dire (n/2)^(n/2).

Prenez des journaux tout au long pour établir le résultat.

36
Nemo

Voir approximation de Stirling :

ln (n!) = n * ln (n) - n + O (ln (n))

où les 2 derniers termes sont moins significatifs que le premier.

11
dsimcha

Pour la borne inférieure,

lg(n!) = lg(n)+lg(n-1)+...+lg(n/2)+...+lg2+lg1
       >= lg(n/2)+lg(n/2)+...+lg(n/2)+ ((n-1)/2) lg 2 (leave last term lg1(=0); replace first n/2 terms as lg(n/2); replace last (n-1)/2 terms as lg2 which will make cancellation easier later)
       = n/2 lg(n/2) + (n/2) lg 2 - 1/2 lg 2
       = n/2 lg n - (n/2)(lg 2) + n/2 - 1/2
       = n/2 lg n - 1/2

lg (n!)> = (1/2) (n lg n - 1)

Combinant les deux bornes:

1/2 (n lg n - 1) <= lg (n!) <= N lg n

En choisissant une constante inférieure supérieure à (1/2), nous pouvons compenser -1 à l'intérieur du support.

Donc lg (n!) = Thêta (n lg n)

7
Vivek Anand Sampath

enter image description here

Désolé, je ne sais pas comment utiliser la syntaxe LaTeX sur stackoverflow ..

6
Samuel

Vous aider plus loin, là où Mick Sharpe vous a laissé:

Sa dérivation est assez simple: voir http://en.wikipedia.org/wiki/Logarithm -> Théorie des groupes

log (n!) = log (n * (n-1) * (n-2) * ... * 2 * 1) = log (n) + log (n-1) + ... + log (2 ) + log (1)

Pensez à n comme infiniment grand . Qu'est-ce que l'infini moins un? ou moins deux? etc.

log (inf) + log (inf) + log (inf) + ... = inf * log (inf)

Et puis pensez à inf comme n.

3
Pindatjuh

Merci, j'ai trouvé vos réponses convaincantes mais dans mon cas, je dois utiliser les propriétés :

log(n!) = Θ(n·log n) =>  log(n!) = O(n log n) and log(n!) = Ω(n log n)

pour vérifier le problème, j'ai trouvé ce site Web sur lequel tout le processus est expliqué: http://www.mcs.sdsmt.edu/ecorwin/cs372/handouts/theta_n_factorial.htm

2
WyrmxD

Cela pourrait aider:

 eln (x) = x 

et

 (lm)n = lm * n
1
Anycorn

http://en.wikipedia.org/wiki/Stirling%27s_approximation Une approximation de Stirling pourrait vous aider. C'est vraiment utile pour traiter les problèmes relatifs aux factorielles liées à des nombres énormes de l'ordre de 10 ^ 10 et plus.

enter image description here

0
user302520