क्या log (n!) = Θ (n · log (n)) है?


218

मुझे वह लॉग दिखाना है ( n !) = N ( n · log ( n ))

एक संकेत दिया गया था कि मुझे n n के साथ ऊपरी बाउंड दिखाना चाहिए और निचली बाउंड को ( n / 2) ( n / 2) के साथ दिखाना चाहिए । यह सब मुझे सहज नहीं लगता। ऐसा क्यों होगा? मैं निश्चित रूप से देख सकता हूं कि n n को n · log ( n ) में कैसे परिवर्तित किया जाए (यानी किसी समीकरण के दोनों तरफ लॉग इन करें), लेकिन यह आगे की तरह काम कर रहा है।

इस समस्या से निपटने के लिए सही तरीका क्या होगा? क्या मुझे पुनरावृत्ति पेड़ को आकर्षित करना चाहिए? इस बारे में कुछ भी पुनरावर्ती नहीं है, ताकि संभावना दृष्टिकोण की तरह प्रतीत न हो।


1
आपको इसे वास्तव में "as n ->
MartW

2
मजेदार व्यायाम: इसी तरह की चाल का उपयोग करके यह दिखाएं कि हार्मोनिक श्रृंखला 1/1 + 1/2 + 1/3 + 1/4 + ... अनंत को मोड़ती है।
यौ

10
यह cs.stackexchange.com पर नहीं होना चाहिए?
कोड़ीबगस्टीन

5
@CodyBugstein, cs.stackexchange.com सवाल पूछने पर वापस मौजूद नहीं था
MrMartin

जवाबों:


303

उसे याद रखो

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

आप ऊपरी सीमा प्राप्त कर सकते हैं

log(1) + log(2) + ... + log(n) <= log(n) + log(n) + ... + log(n)
                                = n*log(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) 

5
ऊपरी बाउंड के लिए यह एक बहुत अच्छा प्रमाण है: लॉग (n!) = लॉग (1) + ... + लॉग (एन) <= ​​एन लॉग (एन) => लॉग (एन!) = ओ (एन लॉग एन! )। हालांकि, निचली सीमा (और फलस्वरूप बड़े-टेटा) को साबित करने के लिए, आपको शायद स्टर्लिंग के अनुमोदन की आवश्यकता होगी।
मेहरदाद अफश्री

33
स्टर्लिंग के सन्निकटन के लिए आपको कम बाध्यता की आवश्यकता नहीं है। log (n!) = log (1) + ... + log (n)> = log (n / 2) + ... + log (n)> = n / 2 * log (n / 2) = Omega (एन लॉग एन)।
कीथ रान्डेल

2
@ कीथ: मुझे यह अभी तक नहीं मिला है। क्या आप (या कोई) मेरे लिए "..." भाग का "लॉग (n / 2) + ... + लॉग (n)" कृपया कुछ और शब्दों का विस्तार कर सकते हैं? धन्यवाद!
j_random_hacker

6
@j_random_hacker: log(n/2) + log(n/2 + 1) + ... + log(n - 1) + log(n)(शर्तों का बड़ा आधा log(n!))। वास्तव में, मैंने सिर्फ प्रश्न पढ़ा और देखा कि प्रश्न में सुराग कहा गया है। मूल रूप से, (n/2)^(n/2) <= n! <= n^n=> log((n/2)^(n/2))<=log(n!)<=log(n^n)=>Θ(n/2 * log(n/2))<=log(n!)<=Θ(n*log(n))
मेहरदाद अफश्री

4
यह स्पष्टीकरण स्वीकृत उत्तर के समान है, लेकिन इसमें कुछ और विवरण हैं: mcs.sdsmt.edu/ecorwin/cs372/handouts/theta_n_factorial.htm
gayavat

40

मुझे लगता है कि यह एक स्वीकृत उत्तर के साथ एक बहुत पुराना प्रश्न है, लेकिन इनमें से कोई भी उत्तर वास्तव में संकेत द्वारा सुझाए गए दृष्टिकोण का उपयोग नहीं करता है।

यह एक बहुत ही सरल तर्क है:

n!(= 1 * 2 * 3 * ... * n) nसंख्याओं का एक उत्पाद है जो प्रत्येक से कम या बराबर होता है n। इसलिए यह nसभी के बराबर संख्या के उत्पाद से कम है n; यानी, n^n

संख्या के आधे - n/2उनमें से - n!उत्पाद में से अधिक या बराबर हैं n/2। इसलिए उनका उत्पाद n/2सभी के बराबर संख्या के उत्पाद से अधिक है n/2; यानी (n/2)^(n/2)

परिणाम स्थापित करने के लिए लॉग भर लें।


9
यह वास्तव में स्वीकार किए गए उत्तर में लॉग संस्करण के समान ही है, लेकिन पहले के बजाय के बाद लघुगणक ले रहा है। (हालांकि यह स्पष्ट रूप से संकेत का उपयोग करता है)
hugomg

14

यहां छवि विवरण दर्ज करें

क्षमा करें, मुझे पता नहीं है कि स्टैकओवरफ्लो पर लाटेक्स सिंटैक्स का उपयोग कैसे करें ..


1
यह एक महान व्याख्या है! मैं चरण 7 तक इसका पालन कर सकता हूं, लेकिन फिर मैं चरण 7 और चरण 8 के बीच होने वाले
गणित को

3
@ Z3d4s चरण 7 में तर्क मूल रूप से है, कि दाहिने हाथ की ओर पहला शब्द प्रमुख शब्द है और यह लॉग (n!) इसलिए n लॉग (n) द्वारा अनुमानित किया जा सकता है या यह आदेश n लॉग (n) का है जिसे बड़े O अंकन O (n * log (n)) द्वारा व्यक्त किया जाता है।
यादृच्छिक

1
@ Z3d4s 7-8 रूपांतरण को किस कदम के रूप में कह रहा है कि n लोगन == लॉग (n ^ n) और यहां बाउंड दिखाने के लिए आप कह सकते हैं कि पहला शब्द हमेशा दूसरे शब्द से अधिक होता है जिसे आप किसी भी बड़े मान के लिए जांच सकते हैं, और बिग-ओ जटिलता व्यक्त करने के लिए हम हमेशा सभी का वर्चस्व करेंगे। तो n लोगन बड़े-ओ समय में योगदान देता है।
शिव प्रकाश


7

कम बाध्य के लिए,

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)

दोनों सीमा को मिलाकर:

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

(1/2) से कम बाउंड कंटीन्यू को चुनकर हम ब्रैकेट के अंदर -1 की भरपाई कर सकते हैं।

इस प्रकार lg (n!) = थीटा (n lg n)


2
इस विस्तारित व्युत्पत्ति की आवश्यकता है क्योंकि, "कुछ"> n / 2 * lg (n / 2) ओमेगा (n lg n) के बराबर नहीं है जिसका उल्लेख पिछली टिप्पणी में से एक में किया गया था।
विवेक आनंद संपथ

इसे "(1/2) की तुलना में एक स्थिर स्मारिका" के रूप में पढ़ा जाना चाहिए क्योंकि हम एक कम बाउंड खोजने की कोशिश कर रहे हैं। कोई भी स्थिरांक, c, छोटा (1/2) अंततः c n logn बना देगा <= (1/2) n * logn- (1/2) n, एक बड़े पर्याप्त n के लिए।
मैथ्यू

3

आगे आपकी मदद करना, जहां मिक शार्प ने आपको छोड़ दिया:

यह विचलन काफी सरल है: http://en.wikipedia.org/wiki/Logarithm -> समूह सिद्धांत देखें

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

N को अनन्त रूप से बड़ा मानें । अनंत शून्य क्या है? या शून्य से दो? आदि।

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

और फिर inf के रूप में n के बारे में सोचो ।


2

धन्यवाद, मैंने पाया अपने जवाब को समझाने लेकिन मेरे मामले में, मैं का उपयोग करना चाहिए Θ गुण:

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

समस्या को सत्यापित करने के लिए मुझे यह वेब मिला, जहाँ आपके पास सारी प्रक्रिया बताई गई है: http://www.mcs.sdsmt.edu/ecorwin/cs372/handouts/theta_n_factorial.htm


1

यह मदद कर सकता है:

e ln (x) = x

तथा

(l m ) n = l m * n

3
वास्तव में, यह गलत है: 1 ^ (m ^ n)! = 1 ^ (m n) यह होना चाहिए (1 ^ m) ^ n = 1 ^ (m n)
पिंडतजुह

उपरोक्त टिप्पणी में 1 के बजाय एल का अर्थ I है।
पिंडजातु

उन्होंने 1 ^ (m ^ n) नहीं लिखा था, उन्होंने लिखा (l ^ m) ^ n
CodyBugstein

1
@CodyBugstein: समस्या को ठीक करने के लिए एक संपादन किया गया था, आपने वर्षों बाद टिप्पणी की जब इतिहास में त्रुटि छिपी हुई थी
बेन वोइगट

0

http://en.wikipedia.org/wiki/Stirling%27s_approximation स्टर्लिंग सन्निकटन आपकी मदद कर सकता है। यह 10 ^ 10 और इसके बाद के संस्करण की विशाल संख्या से संबंधित factorials पर समस्याओं से निपटने में वास्तव में सहायक है।

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.