CodeGym /Java Blog /சீரற்ற /ஜாவா பிக்இண்டிகர் வகுப்பு
John Squirrels
நிலை 41
San Francisco

ஜாவா பிக்இண்டிகர் வகுப்பு

சீரற்ற குழுவில் வெளியிடப்பட்டது

பிக்இண்டிகர் வகுப்பு என்றால் என்ன?

ஜாவாவில் சில பழமையான தரவு வகைகள் உள்ளன , அவை முழு எண் செயல்பாடுகளைச் செய்ய முழு எண்ணாக அல்லது நீளமாக பயன்படுத்தப்படுகின்றன. இருப்பினும், சில சமயங்களில் இதுபோன்ற பழமையான தரவு வகைகளின் எல்லைக்கு வெளியே பெரிய எண்களை நாம் சேமிக்க வேண்டும். BigInteger Class என்பது மிகப் பெரிய எண்களுக்கான கணிதக் கணக்கீடுகளுக்குப் பயன்படுத்தப்படுகிறது. இது java.lang.Math தொகுப்பிலிருந்து அனைத்து முறைகளையும் ஜாவாவின் அனைத்து பழமையான முழு எண் ஆபரேட்டர்களுக்கும் ஒப்புமைகளை வழங்குகிறது. பெரிய முழு எண்வகுப்பு மட்டு எண்கணிதம், பிட் கையாளுதல், GCD கணக்கீடு மற்றும் சில செயல்பாடுகளுக்கான செயல்பாடுகளை உள்ளடக்கியது. பிக்இண்டீஜர்கள் இரண்டு-நிறைவு குறிப்பில் குறிப்பிடப்படுகின்றன. நினைவகம் மாறும் வகையில் ஒதுக்கப்படுவதால், எவ்வளவு பெரிய எண்ணைச் சேமிக்க முடியும் என்பதற்கு கோட்பாட்டு வரம்பு இல்லை. இருப்பினும், நடைமுறையில் நினைவகம் குறைவாக உள்ளது மற்றும் முழு எண்ணை விட குறைவான அல்லது அதற்கு சமமான பிட்களின் எண்ணிக்கையைக் கொண்ட ஒரு முழு எண்ணை நாம் சேமிக்க முடியும். MAX_VALUE . இது நடைமுறையில் கிட்டத்தட்ட அனைத்து பெரிய எண்களையும் சேமிக்க போதுமான பெரிய மேல் வரம்பை வழங்குகிறது.

BigInteger வகுப்பு எவ்வாறு செயல்படுத்தப்படுகிறது?


import java.math.BigInteger;
உங்கள் குறியீட்டில் BigInteger வகுப்பைச் செயல்படுத்த , நீங்கள் java.math.BigInteger தொகுப்பை இறக்குமதி செய்ய வேண்டும்.

பெரிய முழு எண் வகுப்பு அறிவிப்பு

ஜாவாவில் உள்ள BigInteger வகுப்பு java.math தொகுப்பில் பின்வரும் வழியில் அறிவிக்கப்படுகிறது :

public class BigInteger
   extends Number
      implements Comparable<BigInteger>
BigInteger வகுப்பு எண் வகுப்பை விரிவுபடுத்துகிறது மற்றும் ஒப்பிடக்கூடிய இடைமுகத்தை செயல்படுத்துகிறது. இது java.math தொகுப்பில் அறிவிக்கப்பட்டு வரையறுக்கப்பட்டுள்ளது .

வகுப்பு கட்டமைப்பாளர்கள்

ஜாவாவின் பிக்இண்டேஜர் வகுப்பில் பல ஓவர்லோடட் கன்ஸ்ட்ரக்டர்கள் உள்ளன. அவை எவ்வாறு செயல்படுகின்றன என்பதைப் பார்க்க, ஒவ்வொன்றையும் எடிட்டரில் இயக்க முயற்சி செய்யலாம்.
ஸ்ரீ# கன்ஸ்ட்ரக்டர் விளக்கம்
1 BigInteger(பைட்[] வால்) ஒரு பைட் வரிசையை BigInteger ஆக மொழிபெயர்க்கிறது .
2 BigInteger(int signum, byte[] அளவு) குறி-அளவிலான பிரதிநிதித்துவத்தை ஒரு பெரியஇண்டீகராக மொழிபெயர்க்கிறது .
3 BigInteger(int bitLength, int surety, Random rnd) குறிப்பிட்ட நீளத்தின் தோராயமாக உருவாக்கப்பட்ட நேர்மறை பிக்இண்டீஜரை உருவாக்குகிறது.
4 பெரிய முழு எண்(சரம் வால்) தசம சரம் பிரதிநிதித்துவத்தை BigInteger ஆக மொழிபெயர்க்கிறது .
5 பிக்இண்டீஜர்(ஸ்ட்ரிங் வால், இன்ட் ரேடிக்ஸ்) குறிப்பிடப்பட்ட ரேடிக்ஸில் உள்ள சரம் பிரதிநிதித்துவத்தை ஒரு பெரியஇண்டீகராக மாற்றுகிறது .

வகுப்பு முறைகள்

ஜாவாவின் BigInteger வகுப்பில் பல முறைகள் உள்ளன, அவற்றில் சில கீழே விவரிக்கப்பட்டுள்ளன. அட்டவணையில், 'இது' பிக்இண்டீஜரைக் குறிக்கிறது , இது முறையை அழைக்கிறது மற்றும் ' வால் ' என்பது முறைக்கு அனுப்பப்பட்ட வாதமாகும்.
ஏபிஎஸ்() இது ' this ' BigInteger இன் முழுமையான மதிப்பை வழங்குகிறது .
கூட்டு() இது ' திஸ் + வால் ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
கழித்தல் () இது ' திஸ் - வால் ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
பிரி() இது ' this / val ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
பெருக்கு() இது ' இந்த * வால் ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
மதிப்பு() கொடுக்கப்பட்ட நீளத்தின் பெரியஇண்டீஜர் மதிப்பை இது வழங்குகிறது .
சமம்() இது ' இந்த ' பிக்இண்டீஜருக்கும் கொடுக்கப்பட்ட பொருளுக்கும் இடையிலான சமத்துவத்தை ஒப்பிடுகிறது .
பவ்() இது ' திஸ்போனென்ட்'ஐக் கணிப்பதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
நிமிடம்() இது ' this ' BigInteger க்கும் கொடுக்கப்பட்ட மதிப்புக்கும் இடையே உள்ள குறைந்தபட்சத்தை வழங்குகிறது .
அதிகபட்சம்() இது ' this ' BigInteger க்கும் கொடுக்கப்பட்ட மதிப்புக்கும் இடையே உள்ள அதிகபட்சத்தை வழங்குகிறது .
மோட்() இது ' இந்த mod m ' க்கான மதிப்பை வழங்குகிறது .
gcd() இது ' இது ' மற்றும் ' கடந்த மதிப்பு ' ஆகியவற்றின் முழுமையான மதிப்பிற்கு இடையே உள்ள மிகப் பெரிய பொது வகுப்பான ஒரு BigInteger ஐ வழங்குகிறது.
பிட்கவுண்ட்() இது ' this ' BigInteger இன் இரண்டின் நிரப்பு பிரதிநிதித்துவத்தில் உள்ள பிட்களின் எண்ணிக்கையை வழங்குகிறது .
bitLength() இது ' this ' BigInteger இன் குறைந்தபட்ச இரண்டு-நிரப்பு பிரதிநிதித்துவத்தில், குறி பிட்டைத் தவிர்த்து பிட்களின் எண்ணிக்கையை வழங்குகிறது .
மற்றும்() இது ' திஸ் & வால் ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
அல்லது() இது ' இதை | val '.
இல்லை () இது '~திஸ்' கணக்கீடு செய்வதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
மற்றும் இல்லை () இது ' this & ~val ' ஐக் கணக்கிடுவதன் மூலம் ஒரு பெரிய எண்ணை வழங்குகிறது .
intValue() இது BigInteger ஐ ஒரு எண்ணாக மாற்றுகிறது .
floatValue() இது BigInteger ஐ மிதக்க மாற்றுகிறது .
நீண்ட மதிப்பு() இது BigInteger ஐ நீண்டதாக மாற்றுகிறது .
இரட்டை மதிப்பு() இது BigInteger ஐ இரட்டிப்பாக மாற்றுகிறது .
toString() இது 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 Class ஐப் பயன்படுத்தி ஒரு பெரிய எண்ணின் காரணி கணக்கிடப்படுகிறது . நாங்கள் ஒரு கணக்கிடும் காரணி முறையை உருவாக்கியுள்ளோம் . இந்த முறை ஒரு பெரியஇண்டீஜரை உருவாக்கி, பின்னர் பெருக்கல் முறை 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(ஸ்ட்ரிங் வால்) கன்ஸ்ட்ரக்டரைப் பயன்படுத்தி இரண்டு BigInteger களை உருவாக்கியுள்ளோம் . BigInteger s big1 மற்றும் big2 இல் முறையே 20 மற்றும் 60 மதிப்புகளுடன் வெவ்வேறு முறைகளைப் பயன்படுத்தினோம் . நாங்கள் பின்வரும் முறைகளைப் பயன்படுத்தினோம்:
  1. 60ல் இருந்து 20ஐ கழிக்க பெரிய2.கழித்தல்(பெரிய1) .
  2. 20 மற்றும் 60 ஐ சேர்க்க big1.add(big2) .
  3. big1.multiply(big2) 20 மற்றும் 60ஐ பெருக்க.
  4. big2.divide(big1) 60ஐ 20ஆல் வகுக்க.
  5. இரண்டு மதிப்புகளில் சிறியதைப் பெற big1.min(big2) .
  6. இரண்டு மதிப்புகளில் பெரியதைப் பெற big1.max(big2) .
குறியீட்டின் மேல் பகுதியில் java.math.BigInteger இறக்குமதி செய்யப்பட்டுள்ளது என்பதை கவனத்தில் கொள்ள வேண்டும் .

முடிவுரை

ஜாவாவில் உள்ள BigInteger வகுப்பை நீங்கள் இப்போது நன்கு அறிந்திருக்க வேண்டும் . வெவ்வேறு வகையான கட்டமைப்பாளர்களைப் பயன்படுத்தி உங்கள் குறியீட்டில் BigInteger களை நீங்கள் பயன்படுத்த முடியும் . BigInteger Class முறைகளைப் பயன்படுத்தி நீங்கள் வெவ்வேறு எண்கணித மற்றும் தருக்க செயல்பாடுகளைச் செய்ய முடியும் . சவாலாக, BigInteger s இன் வெவ்வேறு மதிப்புகளுடன் வெவ்வேறு முறைகளை அழைக்க முயற்சி செய்யலாம். ஜாவாவில் BigInteger கள் பற்றிய உங்கள் புரிதலை இது மேலும் வலுப்படுத்தும் . உங்கள் கற்றலில் அதிக நம்பிக்கையுடன் இருக்க, அதை மீண்டும் மீண்டும் பயிற்சி செய்ய முயற்சிக்கவும். நல்ல குறியீட்டுக்கான திறவுகோல் பயிற்சி. நல்ல அதிர்ஷ்டம் மற்றும் மகிழ்ச்சியான குறியீட்டு முறை!
கருத்துக்கள்
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION