পটভূমি: চাও জু কিছু সময় আগে নিম্নলিখিত প্রশ্নটি পোস্ট করেছিলেন: " এমন কোনও জ্ঞানের তুলনা বাছাই করা অ্যালগরিদম রয়েছে যেগুলি নেটওয়ার্ক বাছাইয়ের ক্ষেত্রে হ্রাস করে না, যেমন প্রতিটি উপাদানকে বারের সাথে তুলনা করা হয় ? " দেখে মনে হচ্ছে আমরা কিছুটা সমস্যার সাথে আটকে আছি; ২০০৯ সালে ভ্যালেন্টিন পোলিশচুকের সাথে একই সমস্যাটি নিয়ে আলোচনা করেছি এবং আমরা কোথাও পাইনি।
কিছু নতুন ধারণা পেতে, আমি সম্ভবত সবচেয়ে সহজ প্রশ্নটি নিয়ে আসার চেষ্টা করেছি যা একই রকমের স্বাদযুক্ত এবং সম্পূর্ণরূপে তুচ্ছ নয়। সুতরাং নিম্নলিখিত প্রশ্ন।
প্রশ্ন: আপনাকে দু'টি বাছাই করা তালিকা দেওয়া হয়েছে, সেগুলির প্রতিটি উপাদান রয়েছে। আপনি কি তালিকাগুলি মার্জ করতে পারবেন যাতে প্রতিটি উপাদানকে কেবল ও ( 1 ) বারের সাথে তুলনা করা যায় ?
স্বাভাবিকভাবেই, আউটপুট একটি অনুসারে সাজানো তালিকা সব রয়েছে হওয়া উচিত উপাদান।
[এটি তুচ্ছ হিসাবে প্রমাণিত হয়েছিল, উত্তরটি "না"]
প্রশ্ন 2: আপনাকে দুটি সাজানো তালিকা দেওয়া হবে, সেগুলির প্রতিটি উপাদান রয়েছে। আপনি কি তালিকাগুলি মার্জ করতে পারবেন যাতে প্রতিটি উপাদানকে কেবল ও ( 1 ) বারের সাথে তুলনা করা হয় , যদি আপনাকে উপাদানের একটি ছোট ভগ্নাংশটি বাতিল করার অনুমতি দেওয়া হয় ?
আরও স্পষ্টভাবে, আউটপুটটি একটি সাজানো তালিকা হওয়া উচিত যাতে উপাদান থাকে এবং একটি "ট্র্যাশচ্যান" যাতে টি ( এন ) উপাদান থাকে। আপনি টি ( এন ) মানটি কতটা ছোট করতে পারেন ? পথ টি ( এন ) = ঢ তুচ্ছ হয়। টি ( এন ) = এন / 100 এর মতো কিছু সোজা পদ্ধতিতে করণীয় হওয়া উচিত। তবে আপনি টি ( এন ) = ও ( এন ) পেতে পারেন? ?
মন্তব্য:
আমরা এখানে তুলনা মডেল ব্যবহার। নির্ধারিত অ্যালগরিদম শুধুমাত্র, আমরা সবচেয়ে খারাপ ক্ষেত্রে গ্যারান্টি আগ্রহী।
নোট করুন যে উভয় তালিকার ঠিক উপাদান রয়েছে। আমাদের যদি এন উপাদানগুলির সাথে একটি তালিকা এবং অন্য 1 টি উপাদান সহ তালিকা থাকে তবে উত্তরটি পরিষ্কারভাবে "না"; তবে, উভয় তালিকাগুলি দীর্ঘ হলে মনে হয় যে কেউ "লোড ব্যালেন্সিং" করতে সক্ষম হতে পারে।
এবার যে কোনও ধরণের অ্যালগরিদম বৈধ। যদি আপনার অ্যালগরিদম বিল্ডিং ব্লক হিসাবে বাছাই করার নেটওয়ার্কগুলি ব্যবহার করে তবে এটি পুরোপুরি ঠিক আছে।
শুরুর পয়েন্টের জন্য, এখানে একটি সাধারণ অ্যালগরিদম যা প্রতিটি উপাদানকে প্রায় 200 বারের সাথে তুলনা করে: কেবলমাত্র মানক মার্জ অ্যালগরিদম ব্যবহার করুন, তবে তালিকার শীর্ষগুলির জন্য কাউন্টারগুলি বজায় রাখুন। একবার আপনি 200 এ পৌঁছানোর পরে, উপাদানটি বাতিল করুন। এখন আপনি যে প্রতিটি উপাদানটি বাতিল করবেন তার জন্য আপনি 200 টি উপাদান সফলভাবে আপনার আউটপুট অ্যারেতে রেখেছেন। সুতরাং আপনি ।