কম্পিউটার

C++ এ বড় সংখ্যা পরিচালনা করছেন?


C++ এ, আমরা বুস্ট লাইব্রেরি ব্যবহার করে বড় সংখ্যা ব্যবহার করতে পারি। এই C++ বুস্ট লাইব্রেরিটি ব্যাপকভাবে ব্যবহৃত লাইব্রেরি। এটি বিভিন্ন বিভাগের জন্য ব্যবহৃত হয়। এটিতে অ্যাপ্লিকেশনের বড় ডোমেন রয়েছে। উদাহরণস্বরূপ, বুস্ট ব্যবহার করে, আমরা বড় সংখ্যা ব্যবহার করতে পারি যেমন 2 64 C++ এ।

এখানে আমরা বুস্ট লাইব্রেরির কিছু উদাহরণ দেখব। আমরা বড় পূর্ণসংখ্যা ডেটাটাইপ ব্যবহার করতে পারি। আমরা বিভিন্ন ডেটাটাইপ যেমন int128_t, int256_t, int1024_t ইত্যাদি ব্যবহার করতে পারি। এটি ব্যবহার করে আমরা সহজেই 1024 পর্যন্ত নির্ভুলতা পেতে পারি।

প্রথমে আমরা বুস্ট লাইব্রেরি ব্যবহার করে দুটি বিশাল সংখ্যাকে গুণ করছি।

উদাহরণ

#include<iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
int128_t large_product(long long n1, long long n2) {
   int128_t ans = (int128_t) n1 * n2;
   return ans;
}
int main() {
   long long num1 = 98745636214564698;
   long long num2 = 7459874565236544789;
   cout << "Product of "<< num1 << " * "<< num2 << " = " <<
   large_product(num1,num2);
}

আউটপুট

Product of 98745636214564698 * 7459874565236544789 =
736630060025131838840151335215258722

আরেকটি ধরনের ডেটাটাইপ হল আরবিট্রারি প্রিসিসন ডেটাটাইপ। তাই আমরা cpp_int ডেটাটাইপ ব্যবহার করে যেকোনো নির্ভুলতা ব্যবহার করতে পারি। এটি রানটাইমে স্বয়ংক্রিয়ভাবে নির্ভুলতা নির্ধারণ করে।

উদাহরণ

#include<iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;
using namespace std;
cpp_int large_fact(int num) {
   cpp_int fact = 1;
   for (int i=num; i>1; --i)
      fact *= i;
   return fact;
}
int main() {
   cout << "Factorial of 50: " << large_fact(50) << endl;
}

আউটপুট

Factorial of 50:
30414093201713378043612608166064768844377641568960512000000000000

  1. সি++ এ ডুডেনি নম্বর

  2. Recursion ব্যবহার করে ফিবোনাচি সংখ্যা খুঁজে পেতে C++ প্রোগ্রাম

  3. অ্যারে ব্যবহার করে সংখ্যার গড় গণনা করার জন্য C++ প্রোগ্রাম

  4. Recursion ব্যবহার করে প্রাকৃতিক সংখ্যার যোগফল খুঁজে পেতে C++ প্রোগ্রাম