একটি অ্যালগোরিদমের সময় জটিলতা: লগারিদমের ভিত্তিটি বর্ণনা করা কি গুরুত্বপূর্ণ?


19

যেহেতু লগারিদমের ভিত্তিগুলির মধ্যে কেবল একটি ধ্রুবক রয়েছে তাই f(n)=Ω(logn) বিপরীতে f ( n ) = Ω ( লগ এন ) লিখতে ঠিক হবে না , বা বেসটি যাই হোক না কেন?Ω(log2n)


উত্তর:


63

এটি নির্ভর করে যেখানে লগারিদম রয়েছে। যদি এটি কেবল একটি ফ্যাক্টর হয় তবে এটি কোনও পার্থক্য করে না, কারণ বিগ-ও বা আপনাকে কোনও ধ্রুবক দ্বারা গুণ করতে দেয়।θ

আপনি যদি নেন তবে বেসটি গুরুত্বপূর্ণ। বেস 2 তে আপনার কেবল , বেস 10 এ এটি প্রায় ।O(2logn)O(n)( এন 0.3010 )O(n0.3010)


5
আমার ধারণা এটি কেবল 2 like এর মতো কিছু নিয়ে আসতে চলেছে । আমি একটি সংখ্যা প্রকাশ করার জন্য কোন কারণে দেখতে পারে না2লগএনবদলে-to-যাই হোক না কেন এটা করা হয় (সম্ভবত একটি হিসাব কোন মধ্যবর্তী স্তর হিসেবে ব্যতীত)। 2logn2clogbnn
ডেভিড রিচার্বি


50

কারণ asymptotic স্বরলিপি ধ্রুবক কারণের অন্যমনস্ক, এবং কোন দুটি লগারিদমের একটি ধ্রুবক গুণক দ্বারা পৃথক, বেস কোনো পার্থক্য করে তোলে: logan=Θ(logbn) সকলের জন্য a,b>1 । সুতরাং অ্যাসিম্পটোটিক স্বরলিপি ব্যবহার করার সময় লোগারিথমের ভিত্তি নির্দিষ্ট করার দরকার নেই।


13
আমি দেখতে পছন্দ পরিবর্তে ==
Nayuki

16
আমি ভয় পেয়েছি প্রমিত স্বরলিপিটি ব্যবহার করে । =
যুবাল ফিল্মাস

4
@ ইউভালফিল্মাস স্ট্যান্ডার্ড স্বরলিপিটি বিভ্রান্তিমূলক, অন্য কোথাও স্ট্যান্ডার্ডের থেকে সম্পূর্ণ আলাদা এবং অ্যালগরিদমিক জটিলতাকে এর সাথে সামঞ্জস্যপূর্ণ জিনিসগুলি থেকে সম্পূর্ণ এলিয়েন বলে মনে করে। "এটি স্ট্যান্ডার্ড স্বরলিপি" এর চেয়ে ভাল, একইরকম পরিষ্কার-পরিচ্ছন্নতার চেয়ে খারাপ সমাধানের পক্ষে হওয়ার কারণ হতে হবে না। (প্রতীকটির অর্থ সাধারণত প্রসঙ্গ থেকে পরিষ্কার, যাইহোক।)
wizzwizz4

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

3
কখনও কখনও লগ একটি এন = Θ ( লগ বি এন ) এর চেয়ে পরিষ্কার করার জন্য খুব বেশি জিনিস থাকে । nloganΘ(nlogbn)logan=Θ(logbn)
জিয়েক

15

হিসাবে logxy=1logyx এবংlogxy=logzylogzx , সুতরাং একটিএনloganlogbn=lognblogna=logab। হিসাবেlogabইতিবাচক ধ্রুবক (সমস্ত জন্যa,b>1,) তাইlogan=Θ(logbn)


8

বেশিরভাগ ক্ষেত্রে লোগারিদমের ভিত্তি ফেলে রাখা নিরাপদ কারণ অন্যান্য উত্তরগুলি যেমন উল্লেখ করেছে যে লগারিদমগুলির পরিবর্তনের ভিত্তির সূত্রটির অর্থ হ'ল সমস্ত লগারিদম একে অপরের নিয়মিত গুণক।

কিছু ক্ষেত্রে রয়েছে যা করা নিরাপদ নয়। উদাহরণস্বরূপ, @ gnasher729 উল্লেখ করেছে যে আপনার যদি কোনও ঘাঁটিতে লোগারিদম থাকে তবে লোগারিথমিক বেসটি প্রকৃতপক্ষে তাৎপর্যপূর্ণ।

আমি অন্য একটি ক্ষেত্রে উল্লেখ করতে চেয়েছিলাম যেখানে লগারিদমের ভিত্তিটি গুরুত্বপূর্ণ, এবং লোগারিদমের ভিত্তি সমস্যাটির ইনপুট হিসাবে নির্দিষ্ট পরামিতিগুলির উপরে সরাসরি নির্ভর করে। উদাহরণস্বরূপ, র্যাডিক্স সাজানোর আলগোরিদিম কিছু বেস সংখ্যা লেখার করে কাজ করে b , তাদের base- মধ্যে ইনপুট সংখ্যা decomposing b সংখ্যা, তারপর কাউন্টিং ব্যবহার সাজানোর ঐ সংখ্যার একটি সময়ে এক অঙ্ক সাজাতে হয়। কাজ বৃত্তাকার প্রতি সম্পন্ন তারপর Θ(n+b) এবং সেখানে প্রায় করছে logbU চক্রের (যেখানে U সর্বাধিক ইনপুট পূর্ণসংখ্যা), তাই মোট রানটাইম হয় O((n+b)logbU) । যে কোনও স্থির পূর্ণসংখ্যারb জন্য এটিO(nlogU) সরল করে। তবে,b যদিধ্রুবক নাহয় তবে কী ঘটে? একটি চতুর কৌশলটি হলb=n বাছাই করা, সেই ক্ষেত্রে রানটাইমটিO(n+lognU) । যেহেতুlognU =logUlogn , সামগ্রিক অভিব্যক্তি(nলগইউ) তেসরল করেO(nlogUlogn)। লক্ষ্য করুন যে, এই ক্ষেত্রে, লগারিদমের ভিত্তিটি সত্যই তাৎপর্যপূর্ণ কারণ এটি ইনপুট আকারের ক্ষেত্রে ধ্রুবক নয়। অন্যান্য অ্যালগরিদম রয়েছে যা একই রকম রানটাইমগুলি রয়েছে (উদাহরণস্বরূপ কোথাওlogm/2+2শব্দটির সাথে বিভেদ-সেট বনগুলির একটি পুরানো বিশ্লেষণ শেষ হয়েছিল), যার ক্ষেত্রে লগ বেসটি বাদ দেওয়া রানটাইম বিশ্লেষণে হস্তক্ষেপ করবে।

লগ বেস বিষয়গুলির মধ্যে অন্য একটি ক্ষেত্রে লগারিদমিক বেস নিয়ন্ত্রণ করে এমন অ্যালগরিদমের কিছু বাহ্যিক-সুরযুক্ত প্যারামিটার রয়েছে। এই একটি বড় উদাহরণ বি-গাছ, যা কিছু বহিরাগত প্যারামিটার প্রয়োজন b । আদেশের একটি বি-গাছের উচ্চতা b হয় Θ(logbn) , যেখানে লগারিদমের ভিত্তি যে গুরুত্বপূর্ণ b একটি ধ্রুবক নয়।

সংক্ষেপে বলতে গেলে, যেখানে আপনার ধ্রুবক বেস সহ লোগারিথম রয়েছে, আপনি সাধারণত (@ gnasher729 যা দেখিয়েছিলেন তার ব্যতিক্রম সাপেক্ষে) লগারিদমের ভিত্তি ফেলে দিতে পারেন। কিন্তু যখন লগারিদমের ভিত্তিটি অ্যালগরিদমের কিছু প্যারামিটারের উপর নির্ভর করে, সাধারণত এটি করা নিরাপদ নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.