ধরুন আমাদের একটি ধনাত্মক সংখ্যা 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