क्या करता है मतलब?


15

क्या करता है मतलब?log O ( 1 ) एनlogO(1)n

मैं बड़े-ओ संकेतन से अवगत हूं, लेकिन इस संकेतन से मुझे कोई मतलब नहीं है। मुझे इसके बारे में कुछ भी पता नहीं चल सकता है, क्योंकि कोई भी तरीका नहीं है जो एक खोज इंजन इसे सही ढंग से व्याख्या करता है।

संदर्भ के एक बिट के लिए, जहां मुझे यह मिला है वह पढ़ता है "[...] हम एक फ़ंक्शन कहते हैं [कुशल] यदि यह स्थान का उपयोग करता है और अधिकांश समय हर व्यस्तु पर।"O ( लॉग एन ) लॉग ओ ( 1 ) एनO(logn)logO(1)n


1
मैं इस बात से सहमत हूं कि किसी को इस तरह की बातें नहीं लिखनी चाहिए, जब तक कि कोई इस बारे में स्पष्ट न हो कि इसका क्या मतलब है (और पाठक को बताएं कि यह क्या है) और इसका इस्तेमाल लगातार वही नियम करता है।
— राफेल

1
हां, एक को इसके बजाय इसे लिखना चाहिए। ( लॉग ( n ) ) O ( 1 )(log(n))O(1)

1
@ रिकीडेमर वह बात नहीं है जो राफेल बना रहा है। अर्थ है बिल्कुल । log b l h a n n ( लॉग एन ) b l a hlogblahn(logn)blah
— डेविड रिचरबी

4
@ राफेल यह क्षेत्र में मानक संकेतन है। किसी को भी पता होगा कि इसका क्या मतलब है।
— युवल फिल्मस

1
@ युवलफिल्मस मुझे लगता है कि असहमत जवाबों की विविधता निर्णायक प्रमाण है कि आपका दावा गलत है, और इस तरह के संकेतन का उपयोग करने से वास्तव में बचना चाहिए।
— राफेल

जवाबों:


16

आपको एक पल के लिए मजबूत भावना को अनदेखा करने की आवश्यकता है कि " " गलत जगह पर है और परिभाषा के साथ हल पर ध्यान दिए बिना। अर्थ है कि स्थिरांक और ऐसे हैं, जैसे कि सभी , ।हे च ( एन ) = लॉग हे ( 1 ) एन कश्मीर एन 0 एन ≥ एन 0 एफ ( एन ) ≤ लॉग कश्मीर ⋅ 1 एन = लॉग ऑन कश्मीर nOf(n)=logO(1)nkn0n≥n0f(n)≤logk⋅1n=logkn

ध्यान दें कि मतलब । फ़ॉर्म अक्सर बहुवचन कहलाते हैं और आप लोगों को कहते हुए सुन सकते हैं, " बहुवचन  ।"log k n ( log n ) k log O ( 1 ) nlogkn(logn)klogO(1)nएफ एनfn

आप देखेंगे कि यह साबित करना आसान है कि , चूंकि सभी , जहाँ । आप सोच रहे होंगे कि । इसका उत्तर हां में है, क्योंकि बड़े पर्याप्त , , इसलिए बड़े पर्याप्त  ।2n=O(n)2n=O(n)2n≤kn2n≤knn≥0n≥0k=2k=22logn=logO(1)n2logn=logO(1)nnnlogn≥2logn≥22logn≤log2n2logn≤log2nnn

संबंधित नोट पर, आप अक्सर बहुपदों को देखेंगे : एक ही विचार।nO(1)nO(1)


यह आम प्लेसहोल्डर सम्मेलन द्वारा समर्थित नहीं है।
— राफेल

मैं अपनी टिप्पणी वापस लेता हूं: आप सभी महत्वपूर्ण स्थानों पर लिखते हैं, जो पर्याप्त है। ≤≤
— राफेल

@ राफेल ओके। मेरे पास अभी तक इसकी जाँच करने का समय नहीं था, लेकिन मेरी भावना थी कि आप जिस तरह से हैं, उससे अलग मात्रा में आदेश दे सकते हैं। मुझे वास्तव में यकीन नहीं है कि हम एक ही वर्ग के कार्यों को परिभाषित कर रहे हैं।
— डेविड रिचरबी

मुझे लगता है कि आप मेरे (2) को परिभाषित कर रहे हैं, और टॉम ने को परिभाषित किया है । ⋃c∈R>0{logcn}⋃c∈R>0{logcn}
— राफेल

9

यह संकेतन का दुरुपयोग है जिसे आम तौर पर स्वीकृत प्लेसहोल्डर सम्मेलन द्वारा समझ में आता है : जब भी आप एक Landau शब्द O ( f ) पाते हैं , तो इसे (अपने मन में, या कागज़ पर) एक मनमाना कार्य g ∈ O ( च ) ।O(f)g∈O(f)

तो अगर आपको मिल जाए

f ( n ) = log O ( 1 ) nf(n)=logO(1)n

आप पढ़ रहे हैं

च ( एन ) = लॉग जी ( एन ) एन के लिए कुछ ग्राम ∈ हे ( 1 ) ।f(n)=logg(n)n( 1 )g∈O(1).(1)

नोट कहने से अंतर " लॉग ऑन कुछ निरंतर की शक्ति के लिए": जी = n ↦ 1 / n एक अलग संभावना है।logg=n↦1/n

चेतावनी: लेखक भी रोजगार की जा सकती है और अधिक अंकन के दुरुपयोग और चाहते हैं कि आप पढ़ने के लिए

च ( एन ) ∈ हे ( लॉग जी ( एन ) एन ) के लिए कुछ ग्राम ∈ हे ( 1 ) ।f(n)∈O(logg(n)n)( २ )g∈O(1).(2)

(1) और (2) के बीच अंतर पर ध्यान दें; जबकि यह यहाँ सकारात्मक-मूल्यवान कार्यों के एक ही सेट को परिभाषित करने के लिए काम करता है, यह हमेशा काम नहीं करता है। बिना परवाह किए भावों में ओ को न घुमाएं !O


3
मुझे लगता है कि जो इसे बनाता है वह यह है कि x what log x ( n ) मोनोटोनिक है और प्रत्येक निश्चित n के लिए पर्याप्त रूप से सर्जिकल है । मोनोटोनिक ओ की स्थिति को समकक्ष बनाता है और आपको (2) ⇒ (1) देता है; दूसरे रास्ते पर जाने के लिए g की आवश्यकता होती है जो कि f ( n ) फ़ंक्शन की सीमा के बाहर होने पर विफल हो सकता है। यदि आप यह इंगित करना चाहते हैं कि ओ के चारों ओर घूमना खतरनाक है और "जंगली" कार्यों को कवर नहीं करता है, तो ठीक है, लेकिन इस विशिष्ट मामले में यह उस तरह के कार्यों के लिए ठीक है जो लागतों का प्रतिनिधित्व करते हैं। x↦logx(n)nOgf(n)O
— गिल्स एसओ- बुराई को रोकना '24

@ गिलेस मैंने एक सामान्य चेतावनी के लिए बयान को कमजोर कर दिया।
— राफेल

1
यह उत्तर भारी रूप से संपादित किया गया है, और अब मैं भ्रमित हूं: क्या अब आप दावा करते हैं कि (1) और (2) प्रभावी रूप से समान हैं?
— ओबेले

@ ओबेले जहां तक ​​मैं बता सकता हूं, वे सामान्य रूप से नहीं हैं, लेकिन यहां।
— राफेल

लेकिन, 3 l o g 2 n जैसा कुछ मेल नहीं खाता (1) लेकिन क्या मैच (2) सही है? या मैं अब सिर्फ मूर्खतापूर्ण हो रहा हूं? 3log2n
— ओबेले

6

इसका मतलब है कि समारोह के रूप में अधिक से अधिक बढ़ता है लॉग , कुछ निरंतर की शक्ति के लिए यानी लॉग ऑन 2 ( एन ) या लोग इन 5 ( एन ) या लॉग इन करें 99999 ( एन ) ...loglog2(n)log5(n)log99999(n)


इसका उपयोग तब किया जा सकता है जब फ़ंक्शन वृद्धि को लॉग की कुछ निरंतर शक्ति द्वारा बाध्य किया जाता है , लेकिन विशेष स्थिरांक अज्ञात है या अनिर्दिष्ट है। log
— यवेस डेवेट

यह आम प्लेसहोल्डर सम्मेलन द्वारा समर्थित नहीं है।
— राफेल

2

"अधिकांश लॉग ओ ( 1 ) एन " का अर्थ है कि एक निरंतर सी है जैसे कि जो मापा जा रहा है वह हे ( लॉग सी एन ) है ।logO(1)ncO(logcn)

एक अधिक सामान्य संदर्भ में, च ( एन ) ∈ लॉग हे ( 1 ) एन बयान मौजूद है (संभवतः नकारात्मक) के बराबर है स्थिरांक एक और ख ऐसी है कि च ( एन ) ∈ हे ( लॉग इन करें एक एन ) और च ( n ) Ω ∈ ( लॉग बी एन ) ।f(n)∈logO(1)nabf(n)∈O(logan)f(n)∈Ω(logbn)

Ω ( लॉग बी एन ) लोअर बाउंड को अनदेखा करना आसान है । एक सेटिंग में, जहां यह बात होगी (जो कि बहुत ही असामान्य होगी यदि आप विशेष रूप से असममित विकास का अध्ययन करने में रुचि रखते हैं ), तो आपको पूरा भरोसा नहीं होना चाहिए कि लेखक वास्तव में कम बाध्य है, और इसके संदर्भ पर भरोसा करना होगा सुनिश्चित करो।Ω(logbn)


अंकन का शाब्दिक अर्थ लॉग हे ( 1 ) एन कार्यों के परिवार पर गणित कर रही है, सभी कार्यों के परिवार में जिसके परिणामस्वरूप लोग इन छ ( एन ) n , जहां जी ( एन ) ∈ हे ( 1 ) । के रूप में बहुत ज्यादा एक ही में यह काम करता है कैसे गुणा हे ( जी ( एन ) ) द्वारा ज ( एन ) में परिणाम हे ( जी ( एन ) ज (logO(1)nlogg(n)ng(n)∈O(1)O(g(n))h(n)n ) ) , सिवाय इसके कि आपको एक परिणाम मिलता है जो इतनी सरलता से व्यक्त नहीं किया जाता है।O(g(n)h(n))


चूंकि लोअर बाउंड के विवरण हैं शायद अपरिचित क्षेत्र में, यह की कीमत कुछ जवाबी उदाहरण को देखकर। याद रखें कि किसी भी जी ( एन ) ∈ हे ( 1 ) में घिरा है परिमाण ; वहाँ एक निरंतर ग है कि सभी पर्याप्त रूप से बड़े n के लिए | g ( n ) | < c ।g(n)∈O(1)cn|g(n)|<c

जब स्पर्शोन्मुख वृद्धि को देखते हैं , तो आमतौर पर केवल ऊपरी बाउंड जी ( n ) < c मायने रखता है, उदाहरण के लिए, आप पहले से ही जानते हैं कि फ़ंक्शन सकारात्मक है। हालाँकि, पूर्ण सामान्यता में आपको निम्न बाध्य g ( n ) > - c पर ध्यान देना होगा ।g(n)<cg(n)>−c

इसका अर्थ है, बड़े-ओह संकेतन के अधिक विशिष्ट उपयोगों के विपरीत, ऐसे कार्य जो बहुत तेज़ी से घटते हैं, लॉग ओ ( 1 ) एन में विफल हो सकते हैं ; उदाहरण के लिए, १logO(1)nn =लॉग इन करें-(लॉगएन)/(लॉगलॉगएन)एन∉लॉगहे(1)एन क्योंकि -लॉगn

1n=log−(logn)/(loglogn)n∉logO(1)n
लॉग लॉग n ∉हे(1) प्रतिपादक यहाँ भी तेजी से से घिरा होने के लिए परिमाण में बढ़ताहे(1)।
−lognloglogn∉O(1)

कुछ अलग तरह का एक प्रतिरूप यह है कि - 1 ( लॉग ओ ( 1 ) एन ।


क्या मैं अभी b = 0 नहीं ले सकता हूँ और आपके दावे को कमतर कर सकता हूँ?
— डेविड रिचेर्बी

1
@DavidRicherby नहीं, b = 0 अभी भी कहता है कि f नीचे से घिरा हुआ है। Hurkyl: क्यों नहीं है च ( एन ) = 1 / n में लॉग हे ( 1 ) एन ?
— गिल्स एसओ- बुराई को रोकें '

@ गिल्स: अधिक सामग्री जोड़ी गई!

@ गिल्स ओके, निश्चित रूप से, यह नीचे से 1 से बंधा हुआ है। सीएस में लांडऊ नोटेशन के "सबसे" अनुप्रयोगों के लिए कोई बाध्य नहीं है।
— डेविड रिचेर्बी

1) आपका " ओ के आसपास कदम " नियम हमेशा काम नहीं करता है, और मुझे नहीं लगता "अधिकांश" में आमतौर पर इसका अर्थ है; यह सिर्फ बेमानी है। 2) कभी भी O का मतलब निम्न सीमा से नहीं होता है। जब आप Θ का उपयोग करते हैं । 3) यदि और कैसे नकारात्मक कार्यों को O की दी गई परिभाषा से निपटा जाता है (यहां तक ​​कि संकेतन के दुरुपयोग के बिना) सार्वभौमिक रूप से स्पष्ट नहीं है। अधिकांश परिभाषाएँ (एल्गोरिदम के विश्लेषण में) उन्हें बाहर करती हैं। आपको लगता है कि एक ऐसी परिभाषा है जो संपूर्ण मूल्य को बांधती है, जो ठीक है।
— राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.