কী


15

কী মানে?লগ হে ( 1 ) এনlogO(1)n

আমি বিগ-ও স্বরলিপি সম্পর্কে অবগত, তবে এই স্বীকৃতিটি আমার কাছে কোনও অর্থ দেয় না। আমি এটি সম্পর্কে কিছুই খুঁজে পাচ্ছি না, কারণ কোনও সার্চ ইঞ্জিন এটিকে সঠিকভাবে ব্যাখ্যা করার কোনও উপায় নেই।

কিছুটা প্রসঙ্গে, যে বাক্যটি আমি এটি খুঁজে পেয়েছি তাতে "[...] আমরা একটি ফাংশনকে [দক্ষ] বলি যদি এটি স্পেস এবং বেশিরভাগ সময়ে আইটেম প্রতি."( লগ এন ) লগ ( 1 ) এনO(logn)logO(1)n


1
আমি সম্মত হলাম যে এটির অর্থ কী তা সম্পর্কে খুব স্পষ্ট না হওয়া পর্যন্ত (এবং পাঠককে এটি কী তা বোঝায়) এবং এটিকে নিয়মিতভাবে একই নিয়ম ব্যবহার না করা অবধি এমনটি লেখা উচিত নয় one
রাফেল

1
হ্যাঁ, পরিবর্তে এটি লিখতে হবে ( লগ ( এন ) ) ( 1 )(log(n))O(1)

1
@ রিকিডিমার এটি রাফেল তৈরি করার পয়েন্ট নয়। লগ বি এল এইচ এন এরlogblahn অর্থ হ'ল ( লগ এন ) বি এল এইচ(logn)blah
ডেভিড রিচারবি

4
@ রাফেল এটি ক্ষেত্রের মানক স্বরলিপি। যে কেউ জানেন সে এর অর্থ কী তা জানত।
যুবাল ফিল্মাস

1
@ ইউভালফিল্মাস আমার মতে মতবিরোধী উত্তরগুলির বিভিন্নতা আপনার দাবিটি মিথ্যা যে এর চূড়ান্ত প্রমাণ, এবং সত্যই এইরকম স্বরলিপি ব্যবহার করা থেকে বিরত থাকা উচিত।
রাফেল

উত্তর:


16

" O " ভুল জায়গায় রয়েছে এবং আপনার নির্বিশেষে সংজ্ঞাটি দিয়ে চলার দৃ the় অনুভূতিটি আপনাকে এক মুহুর্তের জন্য উপেক্ষা করতে হবে। f ( n ) = log O ( 1 ) n এর অর্থ হল K এবং n 0 এর ধ্রুবক বিদ্যমান রয়েছে , সমস্ত n n 0 , f ( n ) লগ কে 1 n = লগ কে এনOf(n)=logO(1)nkn0nn0f(n)logk1n=logkn

মনে রাখবেন যে, লগ এন মানে ( লগ ) । ফর্মের কার্যাবলী লগ হে ( 1 ) এন প্রায়ই বলা হয় polylogarithmic এবং আপনি শুনতে পারে মানুষ, বলুন " polylog হয়  এন ।"logkn(logn)klogO(1)nfn

আপনি দেখতে পাবেন যে 2 n = O ( n ) প্রমাণ করা খুব সহজ , যেহেতু সমস্ত n 0 এর জন্য 2 n k n , যেখানে k = 2 । আপনি হয়ত ভাবছেন যে 2 লগ এন = লগ হে ( 1 ) এন । উত্তর হ্যাঁ, যেহেতু যথেষ্ট পরিমাণে এন , লগ এন 2 , সুতরাং 2 লগ এন লগ 2 এন যথেষ্ট পরিমাণে বড় 2n=O(n)2nknn0k=22logn=logO(1)nnlogn22lognlog2nএনn

সম্পর্কিত নোটে, আপনি প্রায়শই এন ( 1 ) হিসাবে বহুবচনগুলি দেখতে পাবেন : একই ধারণা।nO(1)


এটি সাধারণ স্থানধারক কনভেনশন দ্বারা সমর্থিত নয়।
রাফেল

আমি আমার মন্তব্য প্রত্যাহার: আপনি লিখতে সকল গুরুত্বপূর্ণ জায়গা, যা যথেষ্ট হবে।
রাফেল

@ রাফেল ঠিক আছে এটি পরীক্ষা করার জন্য আমার কাছে এখনও সময় ছিল না তবে আমার অনুভূতি হচ্ছিল আপনি যেভাবে আছেন আমি তার চেয়ে আলাদাভাবে কোয়ানটিফায়ার অর্ডার করছিলাম। আমি আসলে নিশ্চিত নই যে আমরা একই শ্রেণির ফাংশনগুলি সংজ্ঞায়িত করছি।
ডেভিড রিচার্বি

আমার মনে হয় আপনি আমার (2), এবং টম সংজ্ঞায়িত সংজ্ঞা হয় আর > 0 { লগ N }cR>0{logcn}
রাফেল

9

এই স্বরলিপি যে সাধারণভাবে গ্রহণযোগ্য দ্বারা অর্থে তৈরি করা যেতে পারে অপব্যবহার স্থানধারক সম্মেলন যখনই আপনি কোনো শুরু Landau শব্দটি খুঁজে পেয়েছেন: হে ( ) , একটি দ্বারা এটি (আপনার মন, বা কাগজে) প্রতিস্থাপন অবাধ ফাংশন হে ( )O(f)gO(f)

সুতরাং যদি আপনি খুঁজে

f ( n ) = লগ হে ( 1 ) এনf(n)=logO(1)n

আপনি পড়তে হয়

f ( n ) = কিছু জি ( 1 ) এর জন্য লগ জি ( এন ) এন f(n)=logg(n)n( 1 )gO(1).(1)

" কিছু ধ্রুবকের শক্তিতে লগ " বলার থেকে পার্থক্যটি নোট করুন : জি = এন 1 / এন একটি স্বতন্ত্র সম্ভাবনা।logg=n1/n

সতর্কতা: লেখক স্বরলিপিটির আরও বেশি অপব্যবহার নিয়োগ করছেন এবং আপনি পড়তে চান

f ( n ) some O ( লগ জি ( এন ) এন ) কিছু জি ( 1 ) এর জন্য f(n)O(logg(n)n)( 2 )gO(1).(2)

(1) এবং (2) এর মধ্যে পার্থক্যটি নোট করুন; এটি এখানে ইতিবাচক-মূল্যবান ফাংশনগুলির একই সেটটি সংজ্ঞায়িত করার জন্য কাজ করে, এটি সর্বদা কার্যকর হয় না। যত্ন ব্যতীত অভিব্যক্তিগুলিতে ওকে ঘোরাফেরা করবেন না !O


3
আমি মনে করি এটা কি টিক করা হয় যে তোলে এক্স লগ ইন করুন এক্স ( এন ) একঘেয়ে এবং স্থির প্রত্যেকের জন্য পর্যাপ্ত surjective হয় এন । একঘেয়ে পদে তোলে হে সমতুল্য এবং আপনি (2) ⇒ (1) দান করেন, অন্যভাবে যেতে জি-এর অস্তিত্ব থাকতে হবে যা f ( n ) ফাংশনের সীমার বাইরে থাকলে ব্যর্থ হতে পারে । আপনি যদি এটি উল্লেখ করতে চান যে ওকে ঘুরে বেড়ানো বিপজ্জনক এবং "বন্য" ফাংশনগুলি কভার করে না, তবে এই নির্দিষ্ট ক্ষেত্রে এটি ব্যয়কে উপস্থাপনকারী ধরণের ফাংশনগুলির পক্ষে ঠিক। xlogx(n)nOgf(n)O
গিলস 2-2

@ গিলস আমি সাধারণ সতর্কতার জন্য বিবৃতিটিকে দুর্বল করে দিয়েছি।
রাফেল

1
এই উত্তরটি ভারীভাবে সম্পাদিত হয়েছে, এবং এখন আমি বিভ্রান্ত হয়ে পড়েছি: আপনি কি এখন দাবি করেন যে (1) এবং (2) কার্যকরভাবে একই?
ওবেলে

@ ওবেলে যতদূর আমি বলতে পারি, তারা সাধারণভাবে নয়, তবে এখানে।
রাফেল

তবে, 3 এল জি 2 এন এর মতো কিছু (1) এর সাথে মেলে না তবে মিলছে (2) ঠিক? নাকি আমি এখন নির্বোধ হয়ে যাচ্ছি? 3log2n
ওবেলে

6

এর অর্থ এই যে ফাংশনটি কিছুটা ধ্রুবকের শক্তিতে লগ হিসাবে বৃদ্ধি পায় , যেমন লগ 2 ( এন ) বা লগ 5 ( এন ) বা লগ 99999 ( এন ) ...loglog2(n)log5(n)log99999(n)


এটি ব্যবহার করা যেতে পারে যখন ফাংশন বৃদ্ধি লগের কিছু ধ্রুবক শক্তি দ্বারা আবদ্ধ হিসাবে পরিচিত হয় , তবে নির্দিষ্ট ধ্রুবকটি অজানা বা অনির্ধারিত বামে থাকে। log
ইয়ভেস দাউস্ট

এটি সাধারণ স্থানধারক কনভেনশন দ্বারা সমর্থিত নয়।
রাফেল

2

"সবচেয়ে এ লগ হে ( 1 ) এন মানে একটি ধ্রুবক যে," যেমন যে কি হচ্ছে মাপা হয় হে ( লগ এন )logO(1)ncO(logcn)

একটি সাধারণ প্রেক্ষাপটে সালে ( এন ) লগ হে ( 1 ) এন বিবৃতি অস্তিত্ব আছে যে (সম্ভবত ঋণাত্মক) সমতূল্য ধ্রুবক একটি এবং যেমন যে ( এন ) হে ( লগ ইন করুন একটি এন ) এবং ( এন ) Ω ( লগ বি এন )f(n)logO(1)nabf(n)O(logan)f(n)Ω(logbn)

It is easy to overlook the Ω(logbn)Ω(logbn) lower bound. In a setting where that would matter (which would be very uncommon if you're exclusively interested in studying asymptotic growth), you shouldn't have complete confidence that the author actually meant the lower bound, and would have to rely on the context to make sure.


The literal meaning of the notation logO(1)nlogO(1)n is doing arithmetic on the family of functions, resulting in the family of all functions logg(n)nlogg(n)n, where g(n)O(1)g(n)O(1). This works in pretty much the same as how multiplying O(g(n))O(g(n)) by h(n)h(n) results in O(g(n)h(n))O(g(n)h(n)), except that you get a result that isn't expressed so simply.


Since the details of the lower bound are in probably unfamiliar territory, it's worth looking at some counterexamples. Recall that any g(n)O(1)g(n)O(1) is bounded in magnitude; that there is a constant cc such that for all sufficiently large nn, |g(n)|<c|g(n)|<c.

When looking at asymptotic growth, usually only the upper bound g(n)<cg(n)<c matters, since, e.g., you already know the function is positive. However, in full generality you have to pay attention to the lower bound g(n)>cg(n)>c.

This means, contrary to more typical uses of big-oh notation, functions that decrease too rapidly can fail to be in logO(1)nlogO(1)n; for example, 1n=log(logn)/(loglogn)nlogO(1)n

1n=log(logn)/(loglogn)nlogO(1)n
because lognloglognO(1)
lognloglognO(1)
The exponent here grows in magnitude too rapidly to be bounded by O(1)O(1).

A counterexample of a somewhat different sort is that 1logO(1)n1logO(1)n.


Can't I just take b=0b=0 and make your claimed lower bound go away?
David Richerby

1
@DavidRicherby No, b=0b=0 still says that ff is bounded below. Hurkyl: why isn't f(n)=1/nf(n)=1/n in logO(1)nlogO(1)n?
Gilles 'SO- stop being evil'

@Gilles: More content added!

@Gilles OK, sure, it's bounded below by 1. Which is no bound at all for "most" applications of Landau notation in CS.
David Richerby

1) Your "move around OO" rule does not always work, and I don't think "at most" usually has that meaning; it's just redundant. 2) Never does OO imply a lower bound. That's when you use ΘΘ. 3) If and how negative functions are dealt with by a given definition of OO (even without abuse of notation) is not universally clear. Most definitions (in analysis of algorithms) exclude them. You seem to assume a definition that bounds the absolute value, which is fine.
Raphael
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.