কম্পিউটার

C++ এ বাইনারি অনুসন্ধান ব্যবহার করে প্রদত্ত নির্ভুলতা পর্যন্ত সংখ্যার বর্গমূল খুঁজুন


ধরুন আমাদের একটি ধনাত্মক সংখ্যা n, এবং নির্ভুলতা p আছে। বাইনারি সার্চ টেকনিক ব্যবহার করে p দশমিক স্থান পর্যন্ত n সংখ্যার বর্গমূল বের করতে হবে। তাই যদি সংখ্যাটি হয় n =50, এবং p =3, তাহলে আউটপুট হবে 7.071।

সুতরাং এটি সমাধান করুন, আমাদের কিছু ধাপ অনুসরণ করতে হবে -

  • শুরু শুরু করুন:=0 এবং শেষ:=n
  • মধ্য পূর্ণসংখ্যার বর্গ তুলনা করুন, যদি এটি সংখ্যার সমান হয় তবে অবিচ্ছেদ্য অংশটি খুঁজে পাওয়া গেছে, অন্যথায় প্রয়োজন অনুসারে বাম বা ডান দিকে দেখুন।
  • একবার আমরা অবিচ্ছেদ্য অংশের জন্য কাজটি সম্পন্ন করে ফেলি, তারপর ভগ্নাংশের জন্য কাজটি করি।
  • ইনক্রিমেন্ট ভেরিয়েবলকে 0.1 হিসাবে শুরু করুন, তারপর p স্থান পর্যন্ত ভগ্নাংশের অংশ গণনা করুন। প্রতিটি পুনরাবৃত্তির জন্য বৃদ্ধি তার পূর্ববর্তী মানের 1/10 তম পরিবর্তিত হয়।
  • অবশেষে উত্তর দিন।

উদাহরণ

#include<iostream>
using namespace std;
float sqrtBinarySearch(int num, int p) {
   int left = 0, right = num;
   int mid;
   float res;
   while (left <= right) {
      mid = (left + right) / 2;
      if (mid * mid == num) {
         res = mid;
         break;
      }
      if (mid * mid < num) {
         left = mid + 1;
         res = mid;
      } else {
         right = mid - 1;
      }
   }
   float incr = 0.1;
   for (int i = 0; i < p; i++) {
      while (res * res <= num) {
         res += incr;
      }
      res -= incr;
      incr /= 10;
   }
   return res;
}
int main() {
   int n = 50, p = 3;
   cout << "Square root of " << n << " up to precision " << p << " is: " << sqrtBinarySearch(50, 3) << endl;
}

আউটপুট

Square root of 50 up to precision 3 is: 7.071

  1. C++ ব্যবহার করে প্রদত্ত বিন্দু থেকে সম্ভাব্য চতুর্ভুজের সংখ্যা নির্ণয় করুন

  2. C++ এ একটি প্রদত্ত বাইনারি গাছের বাম পাতার নোডের সমষ্টি খুঁজুন

  3. C++ এ বাইনারি ট্রিতে রুট থেকে প্রদত্ত নোডের দূরত্ব খুঁজুন

  4. বাইনারি অনুসন্ধান ব্যবহার করে একটি অ্যারেতে সর্বাধিক উপাদান খুঁজে পেতে C++ প্রোগ্রাম