बड़े-ओ संकेतन में गुणांक पर चर्चा कैसे करें


10

बड़े-ओ संकेतन में कार्यों के गुणांक पर चर्चा करने के लिए किस संकेतन का उपयोग किया जाता है?

मेरे दो कार्य हैं:

  • f(x)=7x2+4x+2
  • g(x)=3x2+5x+4

जाहिर है, दोनों कार्य , वास्तव में , लेकिन इससे आगे की तुलना की अनुमति नहीं है। मैं गुणांक 7 पर चर्चा कैसे करूं और 3. 3 में गुणांक को कम करने से स्पर्शोन्मुख जटिलता में बदलाव नहीं होता है लेकिन यह अभी भी रनटाइम / मेमोरी उपयोग के लिए एक महत्वपूर्ण अंतर बनाता है।O(x2)Θ(x2)

यह है गलत कहना है कि f है O(7x2) और g है O(3x2) ? क्या अन्य संकेतन है जो गुणांक को ध्यान में रखते हैं? या इस पर चर्चा करने का सबसे अच्छा तरीका क्या होगा?


यह गलत नहीं है, यह सिर्फ बेमानी है, क्योंकि । O(7x2)=O(x2)

जवाबों:


9

Big- और big- अंकन अग्रणी शब्द के गुणांक को छिपाते हैं, इसलिए यदि आपके पास दो कार्य हैं जो दोनों तो आप स्वयं कार्य को देखे बिना उनके पूर्ण मूल्यों की तुलना नहीं कर सकते। यह कहना गलत नहीं है कि , लेकिन यह जानकारीपूर्ण नहीं है क्योंकि भी सत्य है (और वास्तव में, यह किसी भी सकारात्मक निरंतर लिए ) है।Θ Θ ( n 2 ) 7 एक्स 2 + 4 एक्स + 2 = Θ ( 7 एक्स 2 ) 7 एक्स 2 + 4 एक्स + 2 = Θ ( 3 एक्स 2 ) Θ ( कश्मीर एक्स 2 ) कश्मीरOΘΘ(n2)7x2+4x+2=Θ(7x2)7x2+4x+2=Θ(3x2)Θ(kx2)k

इसके बजाय आप उपयोग कर सकते हैं अन्य सूचनाएं हैं। उदाहरण के लिए, संकेतन बड़े- तुलना में बहुत मजबूत दावा है :ΘΘ

f(x)g(x)limxf(x)g(x)=1

उदाहरण के लिए, , लेकिन दावा गलत होगा। आप प्रमुख गुणांक को संरक्षित करने वाले संकेतन के रूप में टिल्ड नोटेशन के बारे में सोच सकते हैं , जो ऐसा प्रतीत होता है कि आप क्या देख रहे हैं यदि आप प्रमुख विकास शब्द के अग्रणी गुणांक की परवाह करते हैं।7x2+4x+27x27x2+4x+23x2Θ


टिल्डे नोटेशन वह है जिसकी मुझे तलाश है। मुझे यकीन था कि कुछ ऐसा था जिसे मैं अभी याद नहीं कर सकता था कि इसे क्या कहा गया था और खोज बेकार साबित हुई। धन्यवाद!

6

टिल्ड एक दृष्टिकोण है। यदि आप साथ रहना चाहते हैं , तो आप कह सकते हैंO

f(x)=7x2+O(x) और

g(x)=3x2+O(x)


इससे भी बेहतर: f (x) = 7x ^ 2 + o (x ^ 2) कहें, थोड़ा-ओ नोटेशन का उपयोग करके यह स्पष्ट करें कि जो बचा है वह x ^ 2 से विषम रूप से छोटा है।
templatetypedef

2
O (x) O (x ^ 2) से कड़ाई से छोटा है, इसलिए इसका उपयोग करना बड़ा-O का उपयोग करने से कम स्पष्ट होगा। दूसरी ओर, थोड़ा-ओ का उपयोग निश्चित रूप से अधिक सामान्य है जब आप यह कहना चाहते हैं कि आपको सही पहला कार्यकाल मिल गया है, क्योंकि तब आपको अगले कार्यकाल के बारे में चिंता करने की आवश्यकता नहीं है। (और अगर हम पूरी तरह से स्पष्ट होना चाहते हैं, तो हमें यह समझाने की आवश्यकता होगी कि हम सिर्फ 7x ^ 2 + 4x + 2 को पहले स्थान पर क्यों नहीं लिखते हैं, क्योंकि यह बिल्कुल सही है।

तुम बिल्कुल सही हो ... मेरी क्षमायाचना!
templatetypedef

ध्यान दें कि इसे लिखने का कठोर तरीका " साथ " में होगा। किसी भी मामले में, यह बहुत उपयोगी है यदि आप "पहले" स्थिरांक से अधिक को ठीक करना चाहते हैं; आप " " कह सकते हैं, जिसे आप नहीं कर सकते । f(x)=7x2+g(x)g(x)O(x)f(x)=7x2+4x+O(1)
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.