2010-01-19 48 views
164

Jestem pokazać, że log (n!) = Θ (n· log (n)).Czy log (n!) = Θ (n · log (n))?

Podpowiedź podano, że należy pokazują górną granicę z nn i wykazują niższe wiązanie z (n/2) (n/2) . Nie wydaje mi się to aż tak intuicyjne. Dlaczego tak się stało? Mogę zdecydowanie zobaczyć, jak konwertować nn do n · log (n) (tj zalogować obie strony równania), ale to rodzaj działa wstecz.

Jakie byłoby właściwe podejście do rozwiązania tego problemu? Czy powinienem narysować drzewo rekursji? Nie ma nic o tym rekurencyjne tak, że nie wydaje się prawdopodobny podejścia ..

+1

Należy naprawdę napisać w tym "as n -> ∞" – MartW

+1

Ćwiczenie zabawy: użyj podobnej sztuczki, aby pokazać, że szereg harmonicznych 1/1 + 1/2 + 1/3 + 1/4 + ... zmienia się w nieskończoność. – Yoo

+6

Czy nie powinno to być na stronie cs.stackexchange.com? – CodyBugstein

Odpowiedz

216

Pamiętaj, że

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

Można dostać górny związany

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

I można dostać dolna granica, wykonując podobną czynność po odrzuceniu pierwszej połowy sumy:

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) 
+0

Interesujące ...Przesuwając to do sumy, istnieje przybliżenie, które powoduje, że notacja theta sama (źródło: http://en.wikipedia.org/wiki/Summation) kwestia tego, jak jest wyprowadzona, jest całkowicie odrębna. Niezła przewaga, dzięki! – Mark

+3

Jest to bardzo dobry dowód dla górnej granicy: log (n!) = Log (1) + ... + log (n) <= n log (n) => log (n!) = O (n log n). Jednakże, aby udowodnić dolną granicę (i w konsekwencji dużą tetę), prawdopodobnie będziesz potrzebować Aproksymacji Stirlinga. –

+22

Nie potrzebujesz aproksymacji Sterlinga dla dolnej granicy. log (n!) = log (1) + ... + log (n)> = log (n/2) + ... + log (n)> = n/2 * log (n/2) = Omega (n log n). –

1

Th to może pomóc:

 
eln(x) = x 

i

 
(lm)n = lm*n 
+3

Właściwie, to nie tak! 1^(m^n) = 1^(m * n) musi być (1^M)^n = 1^(m * n) – Pindatjuh

+0

Eeee mam na myśli L zamiast 1 w powyższym komentarzu. – Pindatjuh

+0

Nie napisał 1^(m^n) napisał (l^m)^n – CodyBugstein

3

Przyczyniają się dalej, gdzie Mick Sharpe opuścił cię:

Nadszedł deriveration jest dość prosta: zobaczyć http://en.wikipedia.org/wiki/Logarithm -> teoria grup

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

Myśl n jako nieskończenie duża. Co to jest nieskończony minus jeden? lub minus dwa? itp.

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

A potem myśleć inf jak n.

30

Zdaję sobie sprawę, że jest to bardzo stara sprawa z przyjętą odpowiedzi, ale żadna z tych odpowiedzi faktycznie korzysta z koncepcją zaproponowaną przez podpowiedź.

Jest to bardzo proste argumentu:

n! (= 1 * 2 * 3 * ... * n) jest iloczynem liczb każdego n mniej niż lub równe n. Dlatego jest on mniejszy niż iloczyn liczby n równej liczbie n; tj. n^n.

Połowa z liczb - tj. n/2 z nich - w produkcie n! jest większa lub równa n/2. Dlatego ich produkt jest większy niż produkt o numerach n/2 równy n/2; tj. (n/2)^(n/2).

Wykonaj logi, aby ustalić wynik.

+5

w rzeczywistości jest tak samo jak wersja logu w zaakceptowanej odpowiedzi, ale zamiast tego logarytm zastępuje później. (bardziej wyraźnie korzysta z podpowiedzi) – hugomg

4

Na dolnej granicy,

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 = log n - 1)

połączenie obu granic:

1/2 (N LG N - 1) < = lg < = n log n

Wybierając dolna granica stałej większa niż (1/2) my (n!) może skompensować -1 wewnątrz wspornika.

Zatem lg (n!) = Theta (n lg n)

+0

Ta rozszerzona derywacja jest potrzebna, ponieważ "coś"> = n/2 * lg (n/2) nie jest równe omegi (n lg n), które zostało wymienione w jednym z poprzednich komentarz. –

3

enter image description here

Niestety, nie wiem jak używać składni LaTeX na StackOverflow ..

Powiązane problemy