جاوا بگ انٹیجر

Jawa Bg An Yjr



جاوا انتہائی بڑی تعداد کے انتظام کے لیے ایک خصوصی BigInteger کلاس پیش کرتا ہے جو 64 بٹ نمبروں سے زیادہ ہیں۔ عددی اقدار کا سائز جو یہ کلاس سنبھال سکتا ہے صرف JVM کی مختص میموری کی وجہ سے محدود ہے۔ BigInteger کلاس، جو ایک Number کو وراثت میں ملتی ہے۔ موازنہ انٹرفیس کو لاگو کرتا ہے۔ یہ ہر جاوا پرائمیٹو انٹیجر آپریٹر کے ساتھ ساتھ java.lang.math ماڈیول سے ہر طریقہ کے برابر دیتا ہے۔ BigInteger آبجیکٹ کی ذخیرہ شدہ قدر کو BigInteger کلاس کی عدم تغیر کی وجہ سے تبدیل نہیں کیا جا سکتا۔

مثال 1:

درج ذیل پروگرام جاوا میں BigInteger بنانے کا ایک طریقہ فراہم کرتا ہے اور دی گئی BigInteger قدر پر ریاضی کے عمل کا اطلاق کرتا ہے۔








ہم نے پروگرام کے اندر جاوا میتھ پیکج سے BigInteger کلاس امپورٹ کیا ہے۔ اس کے بعد، ہم نے جاوا کلاس 'BigIntegerExample' کے مین () طریقہ میں BigInteger آبجیکٹ 'bigInt1' اور 'bigInt2' کا اعلان کیا۔ اگلا، ہم نے BigInteger کلاس کے اندر بڑی عددی اقدار کے ساتھ BigInteger اشیاء کو شروع کیا۔ ہم نے مخصوص بڑی عددی قدر پر ریاضی کے عمل کو انجام دینے کے لیے BigInteger کلاس کا ایک اور آبجیکٹ بنایا ہے۔ اشیاء کو BinInteger قدر کو ضرب دینے کے لیے 'ضرب' اور BigInteger قدر کو تقسیم کرنے کے لیے 'Division' قرار دیا جاتا ہے۔



پھر، ہم نے BigInteger کے multiply() طریقہ کے ساتھ 'multiply' آبجیکٹ کو 'bigInt1' تفویض کیا جو ان پٹ 'bigInt2' لیتا ہے۔ اس کے علاوہ، ہم نے division() طریقہ کو کہا ہے، جو پیرامیٹر 'bigInt2' لیتا ہے جسے 'bigInt1' کے ساتھ تقسیم کیا جائے گا اور عملدرآمد کے بعد نتائج پرنٹ کرتا ہے۔



BigInteger اقدار پر ضرب اور تقسیم کے آپریشن کے نتائج درج ذیل آؤٹ پٹ امیج میں دکھائے گئے ہیں۔ اس طرح جاوا میں BigInteger کو کنفیگر کیا جاتا ہے اور مختلف آپریشنز کے لیے استعمال کیا جاتا ہے۔





مثال 2:

فیکٹوریل کمپیوٹیشن انٹیجر کی بہت بڑی ان پٹ حاصل کرنے کی ایک اچھی مثال ہے۔ BigInteger کو بڑی عددی اقدار کے لیے فیکٹریل حاصل کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔




ہم نے BigInteger کلاس کا 'فیکٹوریل' فنکشن بنایا ہے، جہاں int قسم کی 'num' آبجیکٹ کو 'Num' کی قدر کے فیکٹریل کو واپس کرنے کے لیے دلیل کے طور پر پاس کیا جاتا ہے۔ 'فیکٹوریل' فنکشن کے اندر، ہم نے ایک BigInteger آبجیکٹ 'max_fict' کا اعلان کیا ہے جہاں BigInteger ویلیو '2' بتائی گئی ہے۔ اس کے بعد، ہم نے for-loop کو تعینات کیا، جو اعادہ کرے گا اور پھر 'max_fict' ویلیو کو 4، 5، اور nویں قدر تک ضرب دے گا کیونکہ multiply() طریقہ استعمال کیا جاتا ہے۔ multiply() خود ایک اور 'valueOf' طریقہ کہلاتا ہے، جہاں for-loop کا آبجیکٹ 'i' فراہم کیا جاتا ہے۔ واپسی کا بیان بڑا فیکٹوریل فراہم کرے گا۔ اگلا، ہم نے پروگرام کا مین () طریقہ قائم کیا ہے۔ ہم نے آبجیکٹ 'Num' کو ویلیو کے ساتھ شروع کیا اور factorial() طریقہ سے 'Num' کا فیکٹوریل پرنٹ کیا۔

نمبر '40' کی فیکٹوریل ویلیو BigInteger کی قدر مندرجہ ذیل فراہم کرتی ہے:

مثال 3:

BigInteger کلاس کا bitCount() فنکشن بٹس کو شمار کرتا ہے۔ bitCount() طریقہ ان بٹس کی تعداد فراہم کرتا ہے جو اس BigInteger میں دو تکمیلی شکل میں ہیں اور سائن بٹ سے مختلف ہیں۔ BigInteger کی قدر مثبت ہونے پر یہ طریقہ سیٹ بٹس کو لوٹاتا ہے۔ دوسری طرف، اگر BigInteger کو منفی قدر کے ساتھ مخصوص کیا گیا ہے، تو یہ طریقہ ری سیٹ بٹس کی تعداد لوٹاتا ہے۔


ہم نے کلاس 'BigInteger' کے دو متغیرات، 'b1' اور 'b2' کا اعلان کیا ہے۔ ہم نے مزید دو متغیرات کی بھی تعریف کی ہے، 'انٹیجر 1' اور 'انٹیجر2،' int پرائمیٹو ٹائپ۔ اعلان کے بعد، ہم نے 'b1' کو مثبت BigInteger ویلیو کے ساتھ اور 'b2' کو منفی BigInteger ویلیو کے ساتھ شروع کیا۔ اگلا، ہم نے bitCount() طریقہ کے ساتھ 'integer1' اور 'integer2' کو BigInteger متغیرات 'b1' اور 'b2' کو تفویض کیا ہے۔ شمار شدہ بٹس مخصوص BigInteger اقدار کے لیے bitCount() طریقہ سے حاصل کیے جائیں گے۔

مثبت BigInteger '2' بٹس فراہم کرتا ہے، اور BigInteger کی منفی قدر '1' بٹ ویلیو کو آؤٹ پٹ کرتی ہے۔

مثال 4:

BigInteger میں بڑے سائز کے عددی ڈیٹا کی مطلق قدر کا تعین BigInteger کلاس کے abs() طریقہ کو استعمال کر کے کیا جا سکتا ہے۔ abs() طریقہ BigInteger کی مطلق قدر واپس کرتا ہے۔


ہمارے پاس ایک BigInteger کلاس ہے، جس سے ہم نے چار متغیرات کا اعلان کیا ہے: 'big1،' 'big2،' 'big3،' اور 'big4'. متغیرات 'big1' اور 'big2' بالترتیب مثبت اور منفی قدروں کے ساتھ مخصوص ہیں۔ اس کے بعد، ہم نے 'big1' اور 'big2' کے ساتھ 'big3' اور 'big4' کے متغیر میں abs() طریقہ استعمال کیا۔ نوٹ کریں کہ abs() طریقہ کوئی ان پٹ ویلیو نہیں لیتا ہے لیکن اسے 'big1' اور 'big2' متغیر کے ساتھ کہا جاتا ہے۔ abs() طریقہ ان BigInteger متغیرات کے لیے مطلق قدر حاصل کرتا ہے، اور نتائج مرتب کرنے کے وقت پرنٹ کیے جائیں گے۔

مثبت 432 اور منفی 432 اقدار کی مطلق قدر ایک جیسی ہے کیونکہ abs() طریقہ ہمیشہ مثبت مطلق قدر لوٹاتا ہے۔

مثال 5:

BigInteger قدروں کا موازنہ BigInteger compareTo() طریقہ استعمال کرکے حاصل کیا جاسکتا ہے۔ BigInteger کا موازنہ BigInteger سے کیا جاتا ہے جو compareTo() طریقہ کے اندر ایک پیرامیٹر کے طور پر داخل ہوتا ہے۔ compareTo() طریقہ کی واپسی کی قدر BigInteger اقدار پر مبنی ہے۔ جب BigInteger قدر کا موازنہ برابر ہے، تو صفر لوٹایا جاتا ہے۔ بصورت دیگر، '1' اور '-1' اس شرط پر لوٹائے جاتے ہیں کہ BigInteger ویلیو ایک دلیل کے طور پر پاس کی گئی BigInteger قدر سے زیادہ یا چھوٹی ہے۔


ہمارے پاس 'MyBigInt1' اور 'MyBigtInt2' کلاس 'BigInteger' کا اعلان ہے۔ ان اشیاء کو پھر اسی BigInteger اقدار کے ساتھ مخصوص کیا جاتا ہے۔ اس کے بعد، ہم نے ایک اور آبجیکٹ بنایا، 'موازنہ' جہاں 'MyBigInt1' آبجیکٹ کو compareTo() طریقہ سے کہا جاتا ہے، اور '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 بنایا اور پھر اس کے چند طریقوں کا احاطہ کیا۔