लैंडौ शर्तों के साथ क्या गलत है?


14

मैंने लिखा

i=1n1i=i=1nO(1)=O(n)

लेकिन मेरे दोस्त का कहना है कि यह गलत है। टीसीएस की नकल पुस्तिकाओं से मैं जानता हूँ कि योग भी कहा जाता है कि Hn जिसमें लघुगणक विकास है n । इसलिए मेरी सीमा बहुत तेज नहीं है, लेकिन उस विश्लेषण के लिए पर्याप्त है जिसके लिए मुझे इसकी आवश्यकता थी।

मैंने गलत क्या किया?

संपादित करें : मेरे मित्र का कहना है कि उसी तर्क के साथ, हम यह साबित कर सकते हैं

i=1ni=i=1nO(1)=O(n)

अब यह स्पष्ट रूप से गलत है! यहाँ क्या हो रहा है?


2
इस प्रश्न के टैग के बारे में एक चर्चा यहाँ देखें
राफेल


जवाबों:


10

आप जो कर रहे हैं वह अंकन का एक बहुत ही सुविधाजनक दुरुपयोग है।

कुछ बच्चों का कहना है कि आप जो लिखते हैं वह बकवास है, क्योंकि O(f) एक सेट को दर्शाता है और आप उन पर अंकगणित संचालन नहीं कर सकते हैं जिस तरह से आप कर रहे हैं।

लेकिन उन पेडेंट्स को नजरअंदाज करना और सेट के कुछ सदस्य के लिए खड़ा है, यह एक अच्छा विचार है । तो जब हम कहते हैं कि ( एन ) = जी ( एन ) + हे ( एन ) , क्या हम वास्तव में मतलब है कि ( एन ) - जी ( एन ) हे ( एन ) । (नोट: इस कथन पर कुछ बालकों को भी झटका लग सकता है, यह दावा करते हुए कि f ( n ) एक संख्या और f हैO(f)f(n)=g(n)+O(n)f(n)g(n)O(n)f(n)f समारोह है!)

यह जैसे अभिव्यक्ति लिखने के लिए बहुत सुविधाजनक बनाता है

nk=1nk1/kn+O(n1/3)

क्या इसका मतलब यह है कि वहाँ कुछ है ऐसा है किfO(n1/3)

nk=1nk1/kn+f(n)

आपके मामले में

k=1n1k=k=1nO(1)=O(n)

आप आगे भी इसका दुरुपयोग कर रहे हैं और आपको सावधान रहने की आवश्यकता है।

यहाँ दो संभावित व्याख्याएँ हैं: क्या n के किसी फंक्शन या k के फंक्शन को संदर्भित करता है ?O(1)nk

मेरा मानना ​​है कि सही व्याख्या की व्याख्या इसे कार्य के रूप में करना है ।k

आप के एक समारोह के रूप में यह के बारे में सोच की कोशिश करते हैं , गलत नहीं सोचा था, यह संभावित भ्रम को जन्म दे सकता सोच की तरह कश्मीर है हे ( 1 ) और लिखने की कोशिश कर Σ n कश्मीर = 1 कश्मीर = Σ n कश्मीर = 1 हे ( 1 )nkO(1)k=1nk=k=1nO(1)

आप के एक समारोह के रूप में यह के बारे में सोच की कोशिश करते हैं , तो यह सच है कि, अगर = हे ( जी ) (के रूप में तर्क चला जाता है के लिए ) और जी कभी नहीं है 0 , किkf=O(g)g0

S(n)=k=1nf(k)=k=1nO(g(k))=O(k=1n|g(k)|)

ध्यान दें कि बीच में, हम अंकन के सुविधाजनक दुरुपयोग का इस्तेमाल किया है का मतलब यह है कि कुछ कार्य के लिए हे ( जी ) योग है Σ n कश्मीर = 1( कश्मीर ) । ध्यान दें कि O के अंदर अंतिम फ़ंक्शन एन के एक फ़ंक्शन को संदर्भित करता है । इसका प्रमाण उतना कठिन नहीं है, लेकिन आपको इस तथ्य को पूरा करना होगा कि आप एक अस्वाभाविक ऊपरी सीमा (यानी पर्याप्त रूप से बड़े तर्कों के लिए) के साथ काम कर रहे हैं, लेकिन योग ठीक 1 पर शुरू होता है ।O(g(k))hO(g)k=1nh(k)On1

आप के एक समारोह के रूप में यह के बारे में सोच की कोशिश करते हैं , तो यह भी सच है कि अगर = हे ( जी ) (के रूप में तर्क को जाता है ) तोnf=O(g)

S(n)=k=1nf(k)=k=1nO(g(n))=O(ng(n))

तो आपका प्रमाण अनिवार्य रूप से सही है, या तो व्याख्या में।


1
निचला-रेखा: अवगत रहें (सुनिश्चित करें) कि एक Landau प्रतीक की हर घटना का परिचय ( अपने ) निरंतर है
राफेल

8

आपने जो लिखा है वह पूरी तरह सही है। वें हार्मोनिक संख्या सेट में वास्तव में है हे ( एन )nO(n)

प्रमाण: i=1n1ilnn+12n=O(n)

ऊपरी बाध्य तंग नहीं है , लेकिन यह सही है।O(n)


4
ठीक: 1 / i = 1 = O (1)।
जेफई

1
यह चिंता दूसरी समानता के संकेत पर निर्देशित है। मैं इसे कैसे सत्यापित करूं?
राफेल

2
लेकिन यह भी सही है। N शब्दों का योग, जिनमें से प्रत्येक O (1) है, वास्तव में O (n) है।
सुरेश

2
@ सुरेश केवल अगर ओ के द्वारा निहित स्थिरांक समांतर चर से स्वतंत्र हैं, और यहाँ वह बिंदु है (बीज प्रश्न)। O
राफेल

2
बग दूसरी समानता में नहीं है। बग (दूसरी अभिव्यक्ति में) है कि आप उस योग को कैसे प्राप्त करते हैं। से जा रहे हैं सही है। यह दावा कर रहा है कि i = O ( 1 ) गलत है। मुझे एहसास है कि यह सभी संबंधितों के लिए स्पष्ट है, लेकिन मुझे लगता है कि यह 'सीडिंग' सवालों के साथ समस्या है :)iO(1)=O(n)i=O(1)
सुरेश

6

दूसरे उदाहरण के लिए, आप यह दावा नहीं कर सकते कि

i=O(1)

चूंकि n के साथ बदलता रहता हूं । कुछ चरणों के बाद यह मामला होगा कि i > n / 2 । एक और अधिक उचित तरीके से कहना है कि है मैं = हे ( एन ) वास्तव में के बाद से, योग के दौरान मैं कभी नहीं से अधिक है 1 एन । इस तर्क से, एन Σ मैं = 1 मैं = n Σ मैं = 1 हे ( एन ) = n हे ( एन ) = हे (ini>n/2i=O(n)i1n

i=1ni=i=1nO(n)=nO(n)=O(n2)

हालांकि सही काम वास्तव में केवल अंत में बिग-ओ नोटेशन का उपयोग करना है। ऊपरी आपके योग को जितना संभव हो उतना तंग करता है, और केवल तभी जब आपका किया हुआ इन नुकसानों से बचने के लिए स्पर्शोन्मुख नोटेशन का उपयोग करता है।

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