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

Java Pikintikar



64-பிட் எண்களை விட அதிகமான பெரிய எண்களை நிர்வகிப்பதற்கான சிறப்பு BigInteger வகுப்பை Java வழங்குகிறது. இந்த வர்க்கம் கையாளக்கூடிய முழு எண் மதிப்புகளின் அளவு JVM இன் ஒதுக்கப்பட்ட நினைவகத்தால் கட்டுப்படுத்தப்படுகிறது. BigInteger வகுப்பு, ஒரு எண்ணைப் பெறுகிறது. ஒப்பிடக்கூடிய இடைமுகத்தை செயல்படுத்துகிறது. இது ஒவ்வொரு ஜாவா ப்ரிமிட்டிவ் முழு எண் ஆபரேட்டருக்கும் சமமானவற்றையும், java.lang.math தொகுதியிலிருந்து ஒவ்வொரு முறையையும் வழங்குகிறது. BigInteger வகுப்பின் மாறாத தன்மையின் காரணமாக BigInteger பொருளின் சேமிக்கப்பட்ட மதிப்பை மாற்ற முடியாது.

எடுத்துக்காட்டு 1:

பின்வரும் நிரல் ஜாவாவில் BigInteger ஐ உருவாக்குவதற்கான வழியை வழங்குகிறது மற்றும் வழங்கப்பட்ட BigInteger மதிப்பிற்கு எண்கணித செயல்பாட்டைப் பயன்படுத்துகிறது.








நிரலில் உள்ள ஜாவா கணித தொகுப்பிலிருந்து BigInteger வகுப்பை இறக்குமதி செய்துள்ளோம். அதன் பிறகு, ஜாவா கிளாஸ் “BigIntegerExample” இன் மெயின்() முறையில் BigInteger ஆப்ஜெக்ட்களை “bigInt1” மற்றும் “bigInt2” என்று அறிவித்தோம். அடுத்து, BigInteger வகுப்பிற்குள் பெரிய எண் மதிப்புகளுடன் BigInteger பொருட்களை துவக்கினோம். குறிப்பிட்ட பெரிய முழு எண் மதிப்பில் எண்கணித செயல்பாட்டைச் செய்வதற்கு BigInteger வகுப்பின் மற்றொரு பொருளை உருவாக்கியுள்ளோம். பொருள்கள் பின்இண்டீகர் மதிப்பைப் பெருக்குவதற்கு 'பெருக்கல்' என்றும், பிக்இண்டிகர் மதிப்பைப் வகுக்க 'வகுத்தல்' என்றும் அறிவிக்கப்படுகின்றன.



பின்னர், 'bigInt2' உள்ளீட்டை எடுக்கும் 'பெருக்கல்' என்ற பொருளுக்கு BigInteger இன் பெருக்கல்() முறையுடன் 'bigInt1' ஐ ஒதுக்கினோம். மேலும், நாங்கள் வகுத்தல்() முறையை அழைத்துள்ளோம், இது 'bigInt2' அளவுருவை எடுத்து 'bigInt1' உடன் வகுக்கப்படும் மற்றும் செயல்படுத்திய பின் முடிவுகளை அச்சிடுகிறது.



BigInteger மதிப்புகளின் பெருக்கல் மற்றும் வகுத்தல் செயல்பாட்டின் முடிவுகள் பின்வரும் வெளியீட்டுப் படத்தில் காட்டப்பட்டுள்ளன. இப்படித்தான் BigInteger ஜாவாவில் கட்டமைக்கப்பட்டு பல்வேறு செயல்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது.





எடுத்துக்காட்டு 2:

ஃபேக்டோரியல் கம்ப்யூடேஷன் என்பது ஒரு முழு எண் மிகப் பெரிய உள்ளீடுகளைப் பெறுவதற்கான ஒரு நல்ல எடுத்துக்காட்டு. பெரிய முழு எண் மதிப்புகளுக்கான காரணியைப் பெற BigInteger ஐப் பயன்படுத்தலாம்.




BigInteger வகுப்பின் 'காரணியான' செயல்பாட்டை நாங்கள் உருவாக்கியுள்ளோம், அங்கு 'Num' மதிப்பின் காரணியான மதிப்பை வழங்குவதற்கு வகை int இன் 'num' ஆப்ஜெக்ட் ஒரு வாதமாக அனுப்பப்படுகிறது. “காரணி” செயல்பாட்டின் உள்ளே, BigInteger மதிப்பு “2” குறிப்பிடப்பட்ட இடத்தில் “max_fict” என்ற BigInteger பொருளை அறிவித்துள்ளோம். அதன் பிறகு, for-loop ஐப் பயன்படுத்தினோம், இது 'max_fict' மதிப்பை 4, 5 உடன் பெருக்கும் மற்றும் பெருக்கல்() முறை செயல்படுத்தப்படும் போது n வது மதிப்பு வரை. பெருக்கல்() தானே மற்றொரு 'மதிப்பு' முறை என அழைக்கப்படுகிறது, இதில் for-லூப்பின் பொருள் 'i' வழங்கப்படுகிறது. ரிட்டர்ன் ஸ்டேட்மெண்ட் பெரிய காரணியை வழங்கும். அடுத்து, நிரலின் முக்கிய () முறையை நாங்கள் நிறுவியுள்ளோம். 'Num' என்ற பொருளை மதிப்புடன் துவக்கி, காரணி() முறையில் இருந்து 'Num' இன் காரணியை அச்சிட்டோம்.

'40' என்ற எண்ணின் காரணி மதிப்பு, BigInteger மதிப்பை பின்வருமாறு வழங்குகிறது:

எடுத்துக்காட்டு 3:

BigInteger வகுப்பின் bitCount() செயல்பாடு பிட்களைக் கணக்கிடுகிறது. பிட்கவுண்ட்() முறையானது இந்த பிக்இண்டீஜரில் இரண்டு நிரப்பு வடிவில் இருக்கும் மற்றும் சைன் பிட்டிலிருந்து வேறுபட்ட பிட்களின் எண்ணிக்கையை வழங்குகிறது. இந்த முறை BigInteger இன் மதிப்பு நேர்மறையாக இருக்கும்போது செட் பிட்களை வழங்குகிறது. மறுபுறம், BigInteger எதிர்மறை மதிப்புடன் குறிப்பிடப்பட்டால், இந்த முறை மீட்டமைக்கப்பட்ட பிட்களின் எண்ணிக்கையை வழங்குகிறது.


'BigInteger' வகை வகுப்பின் 'b1' மற்றும் 'b2' ஆகிய இரண்டு மாறிகளை நாங்கள் அறிவித்துள்ளோம். மேலும் இரண்டு மாறிகள், “integer1” மற்றும் “integer2,” int primitive வகையை வரையறுத்துள்ளோம். அறிவிப்பைத் தொடர்ந்து, 'b1' ஐ நேர்மறை BigInteger மதிப்புடனும், 'b2' ஐ எதிர்மறை BigInteger மதிப்புடனும் துவக்கினோம். அடுத்து, BigInteger மாறிகளான “b1” மற்றும் “b2”க்கு bitCount() முறையுடன் “integer1” மற்றும் “integer2” ஐ ஒதுக்கியுள்ளோம். கணக்கிடப்பட்ட பிட்கள் குறிப்பிட்ட BigInteger மதிப்புகளுக்கு bitCount() முறையில் இருந்து பெறப்படும்.

நேர்மறை BigInteger '2' பிட்களை வழங்குகிறது, மேலும் BigInteger இன் எதிர்மறை மதிப்பு '1' பிட் மதிப்பை வெளியிடுகிறது.

எடுத்துக்காட்டு 4:

BigInteger வகுப்பின் abs() முறையைப் பயன்படுத்தி BigInteger இல் உள்ள பெரிய அளவிலான எண் தரவுகளின் முழுமையான மதிப்பை தீர்மானிக்க முடியும். abs() முறை BigInteger இன் முழுமையான மதிப்பை வழங்குகிறது.


எங்களிடம் ஒரு BigInteger வகுப்பு உள்ளது, அதில் இருந்து நான்கு மாறிகளை அறிவித்துள்ளோம்: “big1,” “big2,” “big3,” மற்றும் “big4”. 'big1' மற்றும் 'big2' மாறிகள் முறையே நேர்மறை மற்றும் எதிர்மறை மதிப்புகளுடன் குறிப்பிடப்படுகின்றன. அதன் பிறகு, 'big3' மற்றும் 'big4' மாறிகளில் 'big1' மற்றும் 'big2' உடன் abs() முறையைப் பயன்படுத்தினோம். ஏபிஎஸ்() முறை எந்த உள்ளீட்டு மதிப்பையும் எடுக்காது, ஆனால் 'big1' மற்றும் 'big2' மாறிகள் மூலம் அழைக்கப்படுகிறது. இந்த BigInteger மாறிகளுக்கான முழுமையான மதிப்பை abs() முறை பெறுகிறது, மேலும் முடிவுகள் தொகுக்கும் நேரத்தில் அச்சிடப்படும்.

நேர்மறை 432 மற்றும் எதிர்மறை 432 மதிப்புகளின் முழுமையான மதிப்பு ஒரே மாதிரியாக இருக்கும், ஏனெனில் abs() முறை எப்போதும் நேர்மறை முழுமையான மதிப்பை வழங்குகிறது.

எடுத்துக்காட்டு 5:

BigInteger compareTo() முறையைப் பயன்படுத்தி BigInteger மதிப்புகளின் ஒப்பீட்டை அடையலாம். BigInteger ஆனது, compareTo() முறையின் உள்ளே ஒரு அளவுருவாக உள்ளீடு செய்யப்படும் BigInteger உடன் ஒப்பிடப்படுகிறது. compareTo() முறையின் வருவாய் மதிப்பு BigInteger மதிப்புகளை அடிப்படையாகக் கொண்டது. BigInteger மதிப்பின் ஒப்பீடு சமமாக இருக்கும்போது, ​​பூஜ்ஜியம் திரும்பும். இல்லையெனில், '1' மற்றும் '-1' ஆகியவை BigInteger மதிப்பானது வாதமாக அனுப்பப்பட்ட BigInteger மதிப்பை விட அதிகமாகவோ அல்லது சிறியதாகவோ இருக்கும் நிபந்தனையின் அடிப்படையில் வழங்கப்படும்.


'BigInteger' வகுப்பின் 'MyBigInt1' மற்றும் 'MyBigtInt2' அறிவிப்புப் பொருள்கள் எங்களிடம் உள்ளன. இந்த பொருள்கள் பின்னர் அதே BigInteger மதிப்புகளுடன் குறிப்பிடப்படுகின்றன. அதன் பிறகு, 'MyBigInt1' பொருள் compareTo() முறையுடன் அழைக்கப்படும் 'comparevalue' என்ற மற்றொரு பொருளை உருவாக்கினோம், மேலும் 'MyBigInt2' பொருள் 'MyBigInt2' பொருளுடன் ஒப்பிடுவதற்கு ஒரு வாதமாக அனுப்பப்பட்டது. அடுத்து, எங்களிடம் if-else அறிக்கை உள்ளது, அதில் compareTo() முறையின் முடிவுகள் “0” மதிப்புக்கு சமமாக உள்ளதா இல்லையா என்பதை நாங்கள் சரிபார்த்துள்ளோம்.

இரண்டு BigInteger பொருள்களும் ஒரே மதிப்புகளைக் கொண்டிருப்பதால், கீழே உள்ள படத்தில் காட்டப்பட்டுள்ளபடி, compareTo() முடிவுகள் பூஜ்ஜியத்தைத் தரும்.

எடுத்துக்காட்டு 6:

BigInteger flipBit(index) முறையானது BigInteger க்குள் ஒரு குறிப்பிட்ட பிட் இடத்தில் புரட்டவும் பயன்படுத்தப்படலாம். இந்த முறை மதிப்பிடுகிறது (bigInt ^ (1<


இரண்டு BigInteger மாறிகள், “B_val1” மற்றும் “B_val2” என வரையறுத்துள்ளோம். 'B_val1' மாறியானது BigInteger வகுப்பில் துவக்கப்படுகிறது, அங்கு மதிப்பு குறிப்பிடப்படுகிறது. பின்னர், 'B_val2' என்ற மாறியை flipBit() முறையில் அமைத்துள்ளோம், அங்கு flipBit செயல்பாடு 'B_value' என்ற மாறியில் '2' குறியீட்டு மதிப்புடன் செய்யப்படுகிறது.

BigInteger மதிப்பு '9' இன் குறியீட்டு நிலை '2' இன் குறியீட்டுடன் புரட்டப்பட்டது, இது வெளியீட்டில் '13' மதிப்பை வெளியிடுகிறது.

முடிவுரை

BigInteger வகுப்பு பயன்படுத்த மிகவும் வசதியானது மற்றும் அதன் பரந்த முறை நூலகத்தின் காரணமாக போட்டி நிரலாக்கத்தில் அடிக்கடி பயன்படுத்தப்படுகிறது. தற்போது அணுகக்கூடிய அனைத்து பழமையான தரவு வகைகளின் திறனைத் தாண்டிய மிக நீண்ட எண்களைக் கணக்கிடுவதற்கு BigInteger பயன்படுத்தப்படுகிறது. இது மட்டு எண்கணித செயல்பாடுகளுக்கு பல்வேறு முறைகளை வழங்குகிறது. நாங்கள் முதலில் BigInteger ஐ உருவாக்கி, அதன் சில முறைகளை உள்ளடக்கியுள்ளோம்.