একটি BigInteger ক্লাস কি?
জাভাতে কিছু আদিম ডাটা টাইপ আছে যেগুলো ব্যবহার করা হয়, যেমন int বা লং, ইন্টিজার অপারেশন করার জন্য। যাইহোক, কখনও কখনও আমাদের এই ধরনের আদিম ডেটা প্রকারের সুযোগের বাইরে বড় সংখ্যা সংরক্ষণ করতে হবে। BigInteger ক্লাস খুব বড় সংখ্যার জন্য গাণিতিক গণনার জন্য ব্যবহৃত হয়। এটি java.lang.Math প্যাকেজ থেকে সমস্ত পদ্ধতি এবং জাভা এর সমস্ত আদিম পূর্ণসংখ্যা অপারেটরকে অ্যানালগ প্রদান করে। BigIntegerক্লাস মডুলার গাণিতিক, বিট ম্যানিপুলেশন, GCD গণনা, এবং কয়েকটি অন্যান্য অপারেশনের জন্য অপারেশন কভার করে। BigIntegers দুই এর পরিপূরক স্বরলিপি প্রতিনিধিত্ব করা হয়. মেমরিটি গতিশীলভাবে বরাদ্দ করার কারণে একটি সংখ্যা কত বড় সঞ্চয় করা যেতে পারে তার কোন তাত্ত্বিক সীমা নেই। যাইহোক, কার্যত মেমরি সীমিত এবং আমরা একটি পূর্ণসংখ্যা সঞ্চয় করতে পারি যার বিট সংখ্যা Integer-এর থেকে কম বা সমান। MAX_VALUE । এটি কার্যত প্রায় সমস্ত বড় সংখ্যাগুলি সঞ্চয় করার জন্য যথেষ্ট বড় উপরের আবদ্ধ সরবরাহ করে।কিভাবে BigInteger ক্লাস বাস্তবায়িত হয়?
import java.math.BigInteger;
আপনার কোডে BigInteger ক্লাস বাস্তবায়ন করতে , আপনাকে java.math.BigInteger প্যাকেজ আমদানি করতে হবে।
BigInteger ক্লাস ঘোষণা
জাভাতে BigInteger ক্লাস java.math প্যাকেজে নিম্নলিখিত উপায়ে ঘোষণা করা হয়েছে :public class BigInteger
extends Number
implements Comparable<BigInteger>
BigInteger ক্লাস সংখ্যা শ্রেণীকে প্রসারিত করে এবং একটি তুলনামূলক ইন্টারফেস প্রয়োগ করে । এটি java.math প্যাকেজে ঘোষিত এবং সংজ্ঞায়িত করা হয়েছে।
ক্লাস কনস্ট্রাক্টর
জাভার BigInteger ক্লাসে অনেক ওভারলোডেড কনস্ট্রাক্টর রয়েছে। তারা কিভাবে কাজ করে তা দেখার জন্য আপনি প্রতিটি সম্পাদকে চালানোর চেষ্টা করতে পারেন।Sr# | কনস্ট্রাক্টর | বর্ণনা |
---|---|---|
1 | BigInteger(বাইট[] ভ্যাল) | একটি বাইট অ্যারেকে একটি BigInteger- এ অনুবাদ করে । |
2 | BigInteger(int signum, byte[] magnitude) | সাইন-ম্যাগনিটিউড উপস্থাপনাকে একটি BigInteger- এ অনুবাদ করে । |
3 | BigInteger (int bitlength, int certainty, Random rnd) | নির্দিষ্ট দৈর্ঘ্যের একটি এলোমেলোভাবে উৎপন্ন ধনাত্মক BigInteger তৈরি করে। |
4 | BigInteger(স্ট্রিং ভ্যাল) | দশমিক স্ট্রিং উপস্থাপনাকে একটি BigInteger- এ অনুবাদ করে । |
5 | BigInteger (স্ট্রিং ভ্যাল, int radix) | নির্দিষ্ট রেডিক্সে স্ট্রিং উপস্থাপনাকে একটি BigInteger- এ রূপান্তর করে । |
ক্লাস পদ্ধতি
জাভার BigInteger ক্লাসে অনেকগুলি পদ্ধতি রয়েছে, যার মধ্যে কয়েকটি নীচে বর্ণিত হয়েছে। সারণীতে, 'এটি' বিগইনটেজারকে প্রতিনিধিত্ব করে যা পদ্ধতিটিকে কল করে এবং ' ভাল ' হল পদ্ধতিতে পাস করা যুক্তি।abs() | এটি ' এই ' BigInteger- এর পরম মান প্রদান করে । |
যোগ করুন() | এটি ' this + val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
বিয়োগ() | এটি ' this - val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
বিভক্ত করা() | এটি ' this/val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
গুন () | এটি ' this * val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
মান() | এটি প্রদত্ত লং এর একটি BigInteger মান প্রদান করে । |
সমান() | এটি ' এই ' BigInteger এবং একটি প্রদত্ত বস্তুর মধ্যে সমতার তুলনা করে। |
pow() | এটি ' this exponent ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
মিনিট() | এটি ' এই ' BigInteger এবং প্রদত্ত মানের মধ্যে সর্বনিম্ন প্রদান করে । |
সর্বোচ্চ() | এটি ' এই ' BigInteger এবং প্রদত্ত মানের মধ্যে সর্বাধিক প্রদান করে । |
মোড() | এটি ' this mod m ' এর জন্য একটি মান প্রদান করে ৷ |
gcd() | এটি একটি BigInteger ফেরত দেয় যেটি ' this ' এর পরম মান এবং ' পাস করা মান ' এর মধ্যে সর্বশ্রেষ্ঠ সাধারণ ভাজক । |
বিটকাউন্ট() | এটি ' this ' BigInteger- এর দুই-পরিপূরক উপস্থাপনায় বিটের সংখ্যা প্রদান করে । |
বিট দৈর্ঘ্য() | এটি ' এই ' BigInteger- এর ন্যূনতম দুই-পরিপূরক উপস্থাপনায় সাইন বিট বাদ দিয়ে বিটের সংখ্যা প্রদান করে । |
এবং() | এটি ' this & val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
অথবা() | এটি ' this | কম্পিউট করে একটি Biginteger ফেরত দেয়৷ val '। |
না() | এটি ' ~ this' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
এবং না() | এটি ' this & ~val ' কম্পিউট করে একটি Biginteger ফেরত দেয়। |
intValue() | এটি BigInteger কে int- এ রূপান্তর করে । |
floatValue() | এটি BigInteger কে float এ রূপান্তর করে । |
longValue() | এটি BigInteger কে long এ রূপান্তর করে । |
দ্বিগুণ মান() | এটি BigInteger কে দ্বিগুণে রূপান্তর করে । |
স্ট্রিং() | এটি BigInteger- এর দশমিক স্ট্রিং উপস্থাপনা প্রদান করে । |
উদাহরণ 1
import java.math.BigInteger;
public class Example1 {
static BigInteger calculateFactorial(int val) {
// Initialize result
BigInteger f = BigInteger.ONE; // Or new BigInteger("1")
// compute factorial
for (int i = 2; i <= val; i++) {
f = f.multiply(BigInteger.valueOf(i));
}
return f;
}
// Driver method
public static void main(String[] args) {
int val = 25;
System.out.println(calculateFactorial(val));
}
}
আউটপুট
15511210043330985984000000
ব্যাখ্যা
উপরের স্নিপেটে, java.math.BigInteger প্যাকেজ আমদানি করে BigInteger ক্লাস ব্যবহার করে একটি বৃহৎ সংখ্যার ফ্যাক্টর গণনা করা হয়। আমরা একটি calculateFactorial পদ্ধতি তৈরি করেছি । এই পদ্ধতিটি একটি BigInteger তৈরি করে এবং তারপর f.multiply(BigInteger.valueOf(i)) গুন পদ্ধতি ব্যবহার করে ফ্যাক্টরিয়াল গণনা করে ।উদাহরণ 2
import java.math.BigInteger;
public class Example2 {
public static void main(String[] args) {
BigInteger big1 = new BigInteger("20");
BigInteger big2 = new BigInteger("60");
BigInteger sub = big2.subtract(big1);
System.out.println(big2 + " - " + big1 + " = " + sub);
BigInteger add = big1.add(big2);
System.out.println(big1 + " + " + big2 + " = " + add);
BigInteger mul = big1.multiply(big2);
System.out.println(big1 + " * " + big2 + " = " + mul);
BigInteger div = big2.divide(big1);
System.out.println(big2 + " / " + big1 + " = " + div);
BigInteger min = big1.min(big2);
System.out.println("min value: " + min);
BigInteger max = big1.max(big2);
System.out.println("max value: " + max);
}
}
আউটপুট
60 - 20 = 40 60 + 20 = 80 60 * 20 = 1200 60 / 20 = 3 মিনিট মান: 20 সর্বোচ্চ মান: 60
ব্যাখ্যা
উপরের স্নিপেটে, আমরা BigInteger(String val) কন্সট্রাক্টর ব্যবহার করে দুটি BigInteger s তৈরি করেছি। আমরা BigInteger এর big1 এবং big2 এ যথাক্রমে 20 এবং 60 মান সহ বিভিন্ন পদ্ধতি প্রয়োগ করেছি । আমরা নিম্নলিখিত পদ্ধতি প্রয়োগ করেছি:- big2.subtract(big1) 60 থেকে 20 বিয়োগ করতে।
- big1.add(big2) 20 এবং 60 যোগ করতে।
- big1.multiply(big2) 20 এবং 60 গুন করতে।
- big2.divide(big1) 60 কে 20 দিয়ে ভাগ করতে।
- big1.min(big2) দুটি মানের ছোট পেতে।
- big1.max(big2) দুটি মানের বড় পেতে।