एक एल्गोरिथ्म की समय जटिलता: क्या लघुगणक के आधार को बताना महत्वपूर्ण है?


19

के बाद से वहाँ केवल लघुगणक के आधार के बीच एक स्थिर है, नहीं यह सिर्फ ठीक लिखना है f(n)=Ω(logn) , के रूप में करने का विरोध किया Ω(log2n) , या जो कुछ भी आधार हो सकता है?


जवाबों:


63

यह निर्भर करता है कि लघुगणक कहां है। यदि यह महज एक कारक है, तो यह एक फर्क नहीं करता, क्योंकि बड़े-ओ या θ आप किसी भी निरंतर से गुणा करने के लिए अनुमति देता है।

यदि आप O(2logn) लेते हैं तो आधार महत्वपूर्ण है। आधार 2 में आपके पास बस O(n) , आधार 10 में यह O(n0.3010) के बारे में है ।


5
मुझे लगता है कि यह केवल की तरह कुछ के साथ आने के लिए जा रहा है । मैं किसी भी संख्या को2सीलॉगबीn केबजायn-to-a-the -ever-it-is (शायद एक गणना के मध्यवर्ती चरण के रूप में छोड़कर) केरूप में व्यक्त करने का कोई कारण नहीं देख सकता। 2logn2clogbnn
डेविड रिचेर्बी


50

क्योंकि asymptotic अंकन निरंतर कारकों में से अनजान है, और किसी भी दो लघुगणक एक निरंतर पहलू से भिन्न होते हैं, आधार कोई फर्क नहीं पड़ता: logan=Θ(logbn) सभी के लिए a,b>1 । तो एसिम्प्टोटिक नोटेशन का उपयोग करते समय एक लघुगणक के आधार को निर्दिष्ट करने की आवश्यकता नहीं है।


13
मैं देखना पसंद करते हैं के बजाय ==
Nayuki

16
मुझे डर है कि मानक संकेतन उपयोग करता है =
युवल फिल्मस

4
@YuvalFilmus मानक संकेतन भ्रामक है, मानक को हर जगह पूरी तरह से अलग करता है और एल्गोरिथम जटिलता को काफी समान चीजों से पूरी तरह से अलग लगता है। "यह मानक संकेतन है" कभी भी एक बेहतर, समान रूप से स्पष्ट समाधान पर खराब समाधान का पक्ष लेने का कारण नहीं होना चाहिए। (प्रतीक का अर्थ आमतौर पर संदर्भ से स्पष्ट है, वैसे भी।)
wizzwizz4

7
@ wizzwizz4 आम अभ्यास एक उत्कृष्ट कारण है। यह कुशल संचार को बढ़ावा देता है। यही कारण है कि हम सभी अंग्रेजी वर्तनी के प्रश्नों के साथ आते हैं।
युवल फिल्मस

3
कभी कभी बहुत ज्यादा सामान साफ की तुलना में वहाँ हो गया है लॉग इन करें एक n = Θ ( लॉग n )nloganΘ(nlogbn)logan=Θ(logbn)
जीके'

15

के रूप में logxy=1logyx औरlogxy=logzylogzx , इसलिए loganlogbn=lognblogna=logab। के रूप मेंlogabसकारात्मक निरंतर (सभी के लिए हैa,b>1,) ताकिlogan=Θ(logbn)


8

ज्यादातर मामलों में, यह लघुगणक के आधार को गिराने के लिए सुरक्षित है क्योंकि, जैसा कि अन्य उत्तर बताते हैं, लघुगणक के लिए परिवर्तन के आधार सूत्र का अर्थ है कि सभी लघुगणक एक दूसरे के लगातार गुणक हैं।

ऐसे कुछ मामले हैं जहां ऐसा करना सुरक्षित नहीं है। उदाहरण के लिए, @ gnasher729 ने बताया है कि यदि आपके पास एक घातांक में लघुगणक है, तो लघुगणक आधार वास्तव में महत्वपूर्ण है।

मैं एक और मामले को इंगित करना चाहता था जहां लघुगणक का आधार महत्वपूर्ण है, और यह वह स्थिति है जहां लघुगणक का आधार सीधे एक पैरामीटर पर निर्भर करता है जो समस्या के इनपुट के रूप में निर्दिष्ट है। उदाहरण के लिए, मूलांक सॉर्ट एल्गोरिथ्म कुछ बेस b में संख्याओं को लिखकर काम करता है , इनपुट नंबरों को उनके आधार- b अंकों में विघटित करता है , फिर एक बार में उन संख्याओं को एक अंक को सॉर्ट करने के लिए गिनती की तरह का उपयोग करता है। काम दौर प्रति किया तो है Θ(n+b) और वहाँ लगभग रहे हैं logbU राउंड (जहां U अधिकतम इनपुट पूर्णांक है), इसलिए कुल रनटाइम है O((n+b)logbU) । किसी भी निश्चित पूर्णांकb यह सरल हो जाता हैO(nlogU)। हालाँकि, यदिb स्थिरांक नहींहै तो क्या होगा? एक चतुर तकनीकb=n को चुनना है, जिस स्थिति में रनटाइमO(n+lognU) को सरल करता है। चूंकिlognU = यू logUlogn , समग्र अभिव्यक्ति(एनलॉगयू) केलिए सरल हैO(nlogUlogn)। ध्यान दें कि, इस मामले में, लघुगणक का आधार वास्तव में महत्वपूर्ण है क्योंकि यह इनपुट आकार के संबंध में एक स्थिर नहीं है। ऐसे अन्य एल्गोरिदम हैं जिनके समान रनटाइम हैं (उदाहरण के लिए,logm/2+2कार्यकाल के साथ समाप्त हुए जंगलों के सेट के जंगलों का एक पुराना विश्लेषण), जिसमें लॉग बेस को छोड़ने के मामले में रनटाइम विश्लेषण में हस्तक्षेप होगा।

एक अन्य मामला जिसमें लॉग बेस मायने रखता है, वह वह है जिसमें लॉगरिदमिक बेस को नियंत्रित करने वाले एल्गोरिथम में कुछ बाहरी-ट्यून करने योग्य पैरामीटर होता है। इसका एक बड़ा उदाहरण बी-ट्री है, जिसके लिए कुछ बाहरी पैरामीटर b आवश्यकता होती है । आदेश की एक बी पेड़ की ऊंचाई b है Θ(logbn) , जहां लघुगणक के आधार है कि में महत्वपूर्ण है b एक निरंतर नहीं है।

संक्षेप में, उस मामले में जहां आपके पास एक निरंतर आधार के साथ एक लघुगणक है, आप आमतौर पर (अपवादों के अधीन हो सकते हैं जैसे @ gnasher729 ने इंगित किया है) लघुगणक के आधार को छोड़ दें। लेकिन जब लॉगरिदम का आधार एल्गोरिथ्म के कुछ पैरामीटर पर निर्भर करता है, तो आमतौर पर ऐसा करना सुरक्षित नहीं होता है।

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