जावा बिगइंटीजर

Java Biga Intijara



जावा बहुत बड़ी संख्या के प्रबंधन के लिए एक विशेष BigInteger वर्ग प्रदान करता है जो 64-बिट संख्या से अधिक है। इस वर्ग को संभालने वाले पूर्णांक मानों का आकार केवल JVM की आवंटित मेमोरी से विवश है। BigInteger क्लास, जो एक Number.inherited है, Comparable इंटरफ़ेस को इम्प्लीमेंट करता है। यह हर Java आदिम पूर्णांक ऑपरेटर के साथ-साथ java.lang.math मॉड्यूल से हर विधि के लिए समकक्ष देता है। BigInteger वर्ग की अपरिवर्तनीयता के कारण BigInteger ऑब्जेक्ट के संग्रहीत मान को संशोधित नहीं किया जा सकता है।

उदाहरण 1:

निम्नलिखित प्रोग्राम जावा में BigInteger बनाने का एक तरीका प्रदान करता है और प्रदान किए गए BigInteger मान पर अंकगणितीय ऑपरेशन लागू करता है।








हमने प्रोग्राम के अंदर जावा मैथ पैकेज से BigInteger क्लास इम्पोर्ट किया है। उसके बाद, हमने जावा वर्ग 'BigIntegerExample' की मुख्य () विधि में BigInteger ऑब्जेक्ट्स 'bigInt1' और 'bigInt2' घोषित किए। इसके बाद, हमने BigInteger ऑब्जेक्ट को BigInteger क्लास में बड़े न्यूमेरिक वैल्यू के साथ इनिशियलाइज़ किया। निर्दिष्ट बड़े पूर्णांक मान पर अंकगणितीय ऑपरेशन करने के लिए हमने BigInteger वर्ग का एक अन्य ऑब्जेक्ट बनाया है। वस्तुओं को BinInteger मान को गुणा करने के लिए 'गुणा' और BigInteger मान को विभाजित करने के लिए 'विभाजन' के रूप में घोषित किया जाता है।



फिर, हमने 'bigInt1' को BigInteger के गुणा () विधि के साथ 'गुणा' ऑब्जेक्ट को असाइन किया, जो इनपुट 'bigInt2' लेता है। इसके अलावा, हमने विभाजन () विधि को बुलाया है, जो 'bigInt2' पैरामीटर लेता है जिसे 'bigInt1' से विभाजित किया जाएगा और निष्पादन के बाद परिणाम प्रिंट करता है।



BigInteger मानों पर गुणन और विभाजन ऑपरेशन परिणाम निम्न आउटपुट छवि में दिखाए जाते हैं। इस प्रकार BigInteger को जावा में कॉन्फ़िगर किया गया है और विभिन्न कार्यों के लिए उपयोग किया जाता है।





उदाहरण 2:

क्रमगुणित संगणना बहुत बड़े इनपुट प्राप्त करने वाले पूर्णांक का एक अच्छा उदाहरण है। बड़े पूर्णांक मानों के लिए भाज्य प्राप्त करने के लिए BigInteger का भी उपयोग किया जा सकता है।




हमने BigInteger वर्ग का 'फैक्टोरियल' फ़ंक्शन बनाया है, जहां टाइप इंट की 'संख्या' वस्तु को 'Num' मान के फैक्टोरियल को वापस करने के लिए एक तर्क के रूप में पारित किया गया है। 'फैक्टोरियल' फ़ंक्शन के अंदर, हमने बिगइंटर ऑब्जेक्ट 'max_fict' घोषित किया है जहां बिगइंटर मान '2' निर्दिष्ट किया गया है। उसके बाद, हमने फॉर-लूप को तैनात किया, जो पुनरावृति करेगा और फिर 'max_fict' मान को 4, 5 और nth मान तक गुणा करेगा क्योंकि गुणा () विधि लागू होती है। गुणा () को एक और 'वैल्यूऑफ' विधि कहा जाता है, जहां फॉर-लूप का ऑब्जेक्ट 'i' प्रदान किया जाता है। रिटर्न स्टेटमेंट बड़ा फैक्टोरियल प्रदान करेगा। अगला, हमने कार्यक्रम की मुख्य () विधि स्थापित की है। हमने ऑब्जेक्ट 'Num' को वैल्यू के साथ इनिशियलाइज़ किया और फैक्टोरियल () मेथड से 'Num' के फैक्टोरियल को प्रिंट किया।

'40' संख्या का भाज्य मान निम्नानुसार BigInteger मान प्रदान करता है:

उदाहरण 3:

BigInteger वर्ग का बिटकाउंट () फ़ंक्शन बिट्स की गणना करता है। बिटकाउंट () विधि बिट्स की संख्या प्रदान करती है जो इस बिगइंटर में दो पूरक के रूप में हैं और साइन बिट से अलग हैं। BigInteger का मान सकारात्मक होने पर यह विधि सेट बिट्स लौटाती है। दूसरी ओर, यदि BigInteger को ऋणात्मक मान के साथ निर्दिष्ट किया गया है, तो यह विधि रीसेट बिट्स की संख्या लौटाती है।


हमने 'बिगइन्टेगर' टाइप क्लास के दो वेरिएबल्स, 'बी1' और 'बी2' घोषित किए हैं। हमने दो और चर, 'पूर्णांक 1' और 'पूर्णांक 2,' आदिम प्रकार को भी परिभाषित किया है। घोषणा के बाद, हमने सकारात्मक BigInteger मान के साथ 'b1' और ऋणात्मक BigInteger मान के साथ 'b2' प्रारंभ किया। इसके बाद, हमने BigInteger वेरिएबल्स 'b1' और 'b2' को बिटकाउंट () विधि के साथ 'पूर्णांक 1' और 'पूर्णांक 2' असाइन किया है। गिने हुए बिट्स को निर्दिष्ट BigInteger मानों के लिए बिटकाउंट () विधि से प्राप्त किया जाएगा।

सकारात्मक BigInteger '2' बिट्स प्रदान करता है, और BigInteger का नकारात्मक मान '1' बिट मान आउटपुट करता है।

उदाहरण 4:

BigInteger में बड़े आकार के संख्यात्मक डेटा का निरपेक्ष मान BigInteger वर्ग के एब्स () विधि का उपयोग करके निर्धारित किया जा सकता है। Abs () विधि BigInteger का निरपेक्ष मान लौटाती है।


हमारे पास एक BigInteger वर्ग है, जिसमें से हमने चार चर घोषित किए हैं: 'big1,' 'big2,' 'big3,' और 'big4'। वेरिएबल्स 'big1' और 'big2' क्रमशः सकारात्मक और नकारात्मक मानों के साथ निर्दिष्ट हैं। उसके बाद, हमने 'big3' और 'big4' वेरिएबल्स में 'big1' और 'big2' के साथ एब्स () विधि को लागू किया। ध्यान दें कि एब्स () विधि कोई इनपुट मान नहीं लेती है, लेकिन इसे 'बिग 1' और 'बिग 2' चर के साथ कहा जाता है। Abs () विधि इन BigInteger चर के लिए पूर्ण मान प्राप्त करती है, और परिणाम संकलन समय पर मुद्रित किए जाएंगे।

सकारात्मक 432 और नकारात्मक 432 मानों का निरपेक्ष मान समान है क्योंकि एब्स () विधि हमेशा सकारात्मक निरपेक्ष मान लौटाती है।

उदाहरण 5:

BigInteger मानों की तुलना BigInteger ComparTo() विधि का उपयोग करके प्राप्त की जा सकती है। BigInteger की तुलना BigInteger से की जाती है जो ComparTo() मेथड के अंदर एक पैरामीटर के रूप में इनपुट होता है। ComparTo() मेथड का रिटर्न वैल्यू BigInteger वैल्यू पर आधारित है। जब BigInteger मान की तुलना बराबर होती है, तो शून्य दिया जाता है। अन्यथा, '1' और '-1' इस शर्त पर लौटाए जाते हैं कि BigInteger मान तर्क के रूप में पारित BigInteger मान से बड़ा या छोटा है।


हमारे पास 'BigInteger' श्रेणी की घोषणा 'MyBigInt1' और 'MyBigtInt2' ऑब्जेक्ट हैं। इन वस्तुओं को फिर उसी BigInteger मानों के साथ निर्दिष्ट किया जाता है। उसके बाद, हमने एक और ऑब्जेक्ट बनाया, 'तुलना करें' जहां 'MyBigInt1' ऑब्जेक्ट को ComparTo () विधि से कहा जाता है, और 'MyBigInt2' ऑब्जेक्ट को 'MyBigInt2' ऑब्जेक्ट के साथ तुलना करने के लिए तर्क के रूप में पास किया जाता है। अगला, हमारे पास एक if-else स्टेटमेंट है जहाँ हमने जाँच की है कि ComparTo() पद्धति के परिणाम '0' मान के बराबर हैं या नहीं।

क्योंकि दोनों BigInteger ऑब्जेक्ट्स में समान मान हैं, तुलना करने के लिए () परिणाम शून्य लौटाते हैं, जैसा कि नीचे दी गई छवि में दिखाया गया है।

उदाहरण 6:

BigInteger flipBit (इंडेक्स) विधि का उपयोग BigInteger के भीतर किसी विशिष्ट बिट स्थान पर फ़्लिप करने के लिए भी किया जा सकता है। यह विधि मूल्यांकन करती है (bigInt ^ (1<


हमने दो BigInteger चर, 'B_val1' और 'B_val2' परिभाषित किए हैं। चर 'B_val1' को BigInteger वर्ग के साथ प्रारंभ किया गया है, जहाँ मान निर्दिष्ट किया गया है। फिर, हमने फ्लिपबिट () पद्धति के साथ वेरिएबल 'B_val2' सेट किया है, जहां इंडेक्स वैल्यू '2' के साथ वेरिएबल 'B_value' पर फ्लिपबिट ऑपरेशन किया जाता है।

BigInteger मान '9' की अनुक्रमणिका स्थिति '2' अनुक्रमणिका के साथ फ़्लिप की जाती है, जो आउटपुट में मान '13' को आउटपुट करती है।

निष्कर्ष

BigInteger वर्ग उपयोग करने के लिए बहुत सुविधाजनक है और इसकी विशाल पद्धति पुस्तकालय के कारण अक्सर प्रतिस्पर्धी प्रोग्रामिंग में उपयोग किया जाता है। BigInteger का उपयोग बहुत लंबी संख्याओं की गणना के लिए किया जाता है जो वर्तमान में उपलब्ध आदिम डेटा प्रकारों की क्षमता से परे हैं। यह मॉड्यूलर अंकगणितीय संचालन के लिए विभिन्न तरीके प्रदान करता है। हमने पहले BigInteger बनाया और फिर इसके कुछ तरीके शामिल किए।