2010-01-19 61 views
164

tôi để chứng minh rằng log (n !) = Θ (n · log (n )).Là nhật ký (n!) = Θ (n · log (n))?

Một gợi ý được đưa ra rằng tôi nên hiển thị trên ràng buộc với nn và hiển thị các ràng buộc thấp với (n/2) (n/2) . Điều này dường như không trực quan với tôi. Tại sao điều đó lại xảy ra? Tôi chắc chắn có thể xem làm thế nào để chuyển đổi nn để n · log (n ) (ví dụ: đăng nhập cả hai bên của một phương trình), nhưng đó là loại làm việc về phía sau.

Cách tiếp cận chính xác để giải quyết vấn đề này là gì? Tôi có nên vẽ cây đệ quy không? Không có gì đệ quy về việc này là, do đó không có vẻ như một cách tiếp cận có khả năng ..

+1

Bạn thực sự nên viết nó bao gồm bài tập "as n -> ∞" – MartW

+1

Bài tập thú vị: sử dụng mẹo tương tự để chỉ ra rằng chuỗi hài hòa 1/1 + 1/2 + 1/3 + 1/4 + ... phân kỳ thành vô cùng. – Yoo

+6

Điều này có nên ở cs.stackexchange.com không? – CodyBugstein

Trả lời

216

Hãy nhớ rằng

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

Bạn có thể lấy trên ràng buộc bởi

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

Và bạn có thể nhận được giới hạn dưới bằng cách thực hiện một điều tương tự sau khi vứt bỏ nửa đầu của số tiền:

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

Thú vị ...Đẩy nó vào một tổng, có một xấp xỉ kết quả trong ký hiệu theta chính nó (nguồn: http://en.wikipedia.org/wiki/Summation) một vấn đề làm thế nào mà có nguồn gốc là hoàn toàn riêng biệt. Nice dẫn, cảm ơn! – Mark

+3

Đây là một bằng chứng rất đẹp cho giới hạn trên: log (n!) = Log (1) + ... + log (n) <= n log (n) => log (n!) = O (n log n). Tuy nhiên, để chứng minh ràng buộc thấp hơn (và do đó lớn-tetha), bạn có thể sẽ cần Stirling 's Approximation. –

+22

Bạn không cần xấp xỉ của Sterling cho giới hạn dưới. log (n!) = log (1) + ... + log (n)> = log (n/2) + ... + log (n)> = n/2 * log (n/2) = Omega (n log n). –

1

Th được có thể giúp:

 
eln(x) = x 

 
(lm)n = lm*n 
+3

Trên thực tế, đó là sai: 1^(m^n) = 1^(m * n) nó phải (1^m)^n = 1^(m * n) – Pindatjuh

+0

Errr Ý tôi là L thay vì 1 trong bình luận ở trên. – Pindatjuh

+0

Ông không viết 1^(m^n) ông đã viết (l^m)^n – CodyBugstein

11

Xem Stirling's Approximation: (! n)

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

trong đó 2 cụm từ cuối cùng ít quan trọng hơn cụm từ đầu tiên.

3

Giúp bạn hơn nữa, nơi Mick Sharpe rời bạn:

Đó là deriveration là khá đơn giản: thấy http://en.wikipedia.org/wiki/Logarithm -> Nhóm Lý thuyết

log = log (n * (n (n!) 1) * (n-2) * ... * 2 * 1) = nhật ký (n) + nhật ký (n-1) + ... + nhật ký (2) + log (1)

Hãy suy nghĩ của n là cực lớn. Điều gì là vô hạn trừ một? hoặc trừ hai? v.v.

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

Và sau đó nghĩ về inf như n.

30

Tôi nhận ra đây là một câu hỏi rất cũ với một câu trả lời được chấp nhận, nhưng không ai trong số những câu trả lời thực sự sử dụng phương pháp được đề xuất bởi các gợi ý.

Đó là một cuộc tranh luận khá đơn giản:

n! (= 1 * 2 * 3 * ... * n) là một sản phẩm của n số mỗi ít hơn hoặc bằng n. Do đó, nó nhỏ hơn sản phẩm của số n tất cả bằng n; tức là, n^n.

Một nửa số - nghĩa là n/2 trong số đó - trong sản phẩm n! lớn hơn hoặc bằng n/2. Do đó, sản phẩm của họ lớn hơn sản phẩm của n/2 tất cả các số bằng n/2; tức là (n/2)^(n/2).

Ghi nhật ký trong suốt để thiết lập kết quả.

+5

Điều này thực sự chỉ giống như phiên bản nhật ký trong câu trả lời được chấp nhận nhưng lấy logarit thay vì trước đó. (nó rõ ràng sử dụng gợi ý hơn) – hugomg

2

Cảm ơn, tôi tìm thấy câu trả lời của bạn thuyết phục nhưng trong trường hợp của tôi, tôi phải sử dụng Θ tính:

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

để xác minh vấn đề tôi thấy web này, nơi bạn có tất cả các quá trình giải thích: http://www.mcs.sdsmt.edu/ecorwin/cs372/handouts/theta_n_factorial.htm

4

Đối với ràng buộc thấp hơn,

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 n lg - 1)

Kết hợp cả hai giới hạn:

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

Bằng cách lựa chọn liên tục thấp hơn ràng buộc lớn hơn (1/2), chúng tôi (n!) có thể bù cho -1 bên trong khung.

Như vậy lg (n!) = Theta (n lg n)

+0

Dẫn xuất mở rộng này là cần thiết bởi vì, "cái gì đó"> = n/2 * lg (n/2) không bằng omega (n lg n) đã được đề cập ở một trong những bình luận. –

3

enter image description here

Xin lỗi, tôi không biết làm thế nào để sử dụng cú pháp LaTeX trên stackoverflow ..

Các vấn đề liên quan