আমি সমস্যার জন্য একটি দক্ষ অ্যালগরিদম চাই:
ইনপুট : কিছু পূর্ণসংখ্যা জন্য ধনাত্মক পূর্ণসংখ্যা (বিট হিসাবে সঞ্চিত) ।
আউটপুট : সংখ্যা ।
প্রশ্ন : আমরা গনা পারি এর বিট থেকে মধ্যে সময়?
এটি একটি গণিতের উত্তর থেকে উত্সাহিত একটি তাত্ত্বিক প্রশ্ন SEএসই প্রশ্ন এই দ্বিপক্ষের জন্য একটি সূত্র কীভাবে সন্ধান করবেন? । এই প্রশ্নে, লেখক এবং প্রাকৃতিক সংখ্যাগুলি থেকে একটি সন্ধান পেতে চেয়েছিলেন । সমাধান হিসাবে আমি । সেখানে আর একটি উত্তর দৃ .়ভাবে জানিয়েছিল যে "এখানে কোনও সাধারণ সূত্র নেই", যা আমার প্রস্তাবিত সমাধানটি কীভাবে (গণনার ক্ষেত্রে) সহজ তা অবাক করে দেয়।
আমার প্রস্তাবিত সমাধান সঙ্গে, আমরা যদি সত্যি জানি এবং , আমরা সহজেই গনা করতে (এর বাইনারি ডিজিট লিখতে অনুসৃত দ্বারা দ্বারা অনুসরণ শূণ্যসমূহ)। এটি সময় নেয়।
খোঁজা এর বিট থেকে অন্তত গুরুত্বপূর্ণ বিট খোঁজার জন্য পরিমাণে (যা ডান বিট বদল আনতে গণনা দ্বারা নির্ণয় করা যেতে পারে, যাব মেমরি)। এটি সময় নেয় ।
তবে, আমাদের খুঁজে নেওয়া দরকার যা আরও বেশি কঠিন হতে পারে। বার বার 3 দ্বারা ভাগ করে n খুঁজে পাওয়া সম্ভব হবে তবে এটি অপব্যয় বলে মনে হচ্ছে। এর জন্য n বিভাগের ক্রিয়াকলাপ প্রয়োজন , যার প্রত্যেকটিতে O ( n ) সময় লাগবে, সুতরাং এটি মোট ও ( এন 2 ) সময়। [প্রকৃতপক্ষে, প্রতিটি পুনরাবৃত্তির পরে অঙ্কগুলির সংখ্যা রৈখিকভাবে হ্রাস পাবে, তবে এটি এখনও ও ( এন 2 ) সময়ের ফলাফল results
দেখে মনে হচ্ছে আমাদের ইনপুটটি পাওয়ার হিসাবে জেনে কাজে লাগাতে সক্ষম হওয়া উচিত ।