جاوا زبان میں فبونیکی نمبرز

Jawa Zban My Fbwnyky Nmbrz



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

درحقیقت، پہلے دو فبونیکی نمبرز پہلے سے طے شدہ ہیں۔ پہلا فبونیکی نمبر 0 ہے اور دوسرا فبونیکی نمبر 1 ہے۔ صفر پر مبنی اشاریہ سازی اور یہ فرض کرتے ہوئے کہ فبونیکی نمبر ایک صف میں ہیں، پھر:

انڈیکس میں 0 ، فبونیکی نمبر ہے۔ 0 , ( پہلے سے طے شدہ ) ;

انڈیکس میں 1 ، فبونیکی نمبر ہے۔ 1 , ( پہلے سے طے شدہ ) ;

انڈیکس میں دو ، فبونیکی نمبر ہے۔ 1 = 1 + 0 , ( تعریف کی رو سے ) ;

انڈیکس میں 3 ، فبونیکی نمبر ہے۔ دو = 1 + 1 , ( تعریف کی رو سے ) ;

انڈیکس میں 4 ، فبونیکی نمبر ہے۔ 3 = دو + 1 , ( تعریف کی رو سے ) ;

انڈیکس میں 5 ، فبونیکی نمبر ہے۔ 5 = 3 + دو , ( تعریف کی رو سے ) ;

انڈیکس میں 6 ، فبونیکی نمبر ہے۔ 8 = 5 + 3 , ( تعریف کی رو سے ) ;

انڈیکس میں 7 ، فبونیکی نمبر ہے۔ 13 = 8 + 5 , ( تعریف کی رو سے ) ;

انڈیکس میں 8 ، فبونیکی نمبر ہے۔ اکیس = 13 + 8 , ( تعریف کی رو سے ) ;

انڈیکس میں 9 ، فبونیکی نمبر ہے۔ 3. 4 = اکیس + 13 , ( تعریف کی رو سے ) ;

اور اسی طرح.







پروگرامنگ میں، متغیر n، اور not i ان فبونیکی نمبروں کے لیے صفر پر مبنی اشاریہ جات کے لیے استعمال ہوتا ہے۔ اور اس کے ساتھ، پہلے بارہ فبونیکی نمبر یہ ہیں:



0 1 1 دو 3 5 8 13 اکیس 3. 4 55 89
0 1 دو 3 4 5 6 7 8 9 10 گیارہ

ٹیبل میں دوسری قطار صفر پر مبنی اشاریہ جات دیتی ہے، جن میں سے ہر ایک کا پروگرامنگ میں متغیر n ہوگا۔ پہلی قطار متعلقہ فبونیکی نمبرز دیتی ہے۔ لہذا، فبونیکی نمبر صرف کوئی نمبر نہیں ہیں۔ بنیادی تعریف 0 سے شروع ہوتی ہے، پہلے فبونیکی نمبر کے لیے اور دوسرے فبونیکی نمبر کے لیے 1۔ باقی نمبر وہیں سے تیار ہوتے ہیں۔



فبونیکی نمبر O(n) وقت اور O(1) وقت میں بھی تیار کیے جا سکتے ہیں۔ O(n) وقت کے لیے، اگر n مثال کے طور پر 12 ہے، تو پہلے بارہ فبونیکی نمبرز تیار کیے جائیں گے۔ O(1) وقت کے لیے، صرف ایک فبونیکی نمبر تیار ہوتا ہے۔ مثال کے طور پر، اگر n 6 ہے، تو فبونیکی نمبر 8 پیدا ہوگا۔





یہ مضمون جاوا میں فبونیکی نمبر تیار کرنے کے ان دو طریقوں کی وضاحت کرتا ہے۔

فبونیکی نمبر کا فارمولا

فبونیکی نمبر کے لیے ایک ریاضیاتی فارمولا ہے۔ یہ فارمولہ تین لائنوں یا ایک لائن میں لکھا جا سکتا ہے۔ تین سطروں میں لکھا ہے:

جہاں ایف n صفر پر مبنی n پر فبونیکی نمبر ہے۔ ویں انڈیکس فبونیکی نمبر کی تعریف اس طرح کی جاتی ہے۔



O(n) وقت میں فبونیکی نمبر تیار کرنا

اگر فبونیکی نمبرز کو O(3) اوقات میں تیار کیا جانا ہے، تو نمبرز، 0، 1، 1 بنائے جائیں گے۔ وہ پہلے تین فبونیکی نمبرز ہیں۔ آخری صفر پر مبنی n ویں یہاں انڈیکس 2 ہے۔ اگر فبونیکی نمبرز کو O(7) اوقات میں تیار کیا جائے تو نمبرز، 0، 1، 1، 2، 3، 5، 8 بنائے جائیں گے۔ وہ پہلے سات فبونیکی نمبرز ہیں۔ آخری صفر پر مبنی n ویں یہاں انڈیکس 6 ہے۔ اگر فبونیکی نمبرز کو O(n) اوقات میں تیار کیا جائے تو نمبرز، 0, 1, 1, 2, 3, 5, 8 – – -, پیدا ہوں گے۔ وہ پہلے n فبونیکی نمبرز ہیں۔ آخری صفر پر مبنی n ویں یہاں انڈیکس n-1 ہے۔

پہلے n فبونیکی نمبر تیار کرنے کے لیے کلاس میں جاوا کا طریقہ یہ ہے:

کلاس فبونیکی {
باطل فبونیکی ( int [ ] پی ) {
int n = پی۔ لمبائی ;
اگر ( n > 0 )
پی [ 0 ] = 0 ;
اگر ( n > 1 )
پی [ 1 ] = 1 ;
کے لیے ( int میں = دو ; میں < n ; میں ++ ) { //n=0 اور n=2 پر غور کیا گیا ہے۔
int currNo = پی [ میں - 1 ] + پی [ میں - دو ] ;
پی [ میں ] = currNo ;
}
}
}

کلاس، فبونیکی نجی ہے۔ دی فبونیکی() طریقہ صف P لیتا ہے اور باطل لوٹاتا ہے۔ طریقہ سرنی کی لمبائی کا تعین کرکے شروع ہوتا ہے۔ n کی یہ لمبائی فبونیکی نمبرز کی مطلوبہ تعداد ہے۔ پہلا اور دوسرا فبونیکی نمبر واضح طور پر متعین کیا جاتا ہے اور صف میں پہلی اور دوسری پوزیشن پر رکھا جاتا ہے۔

تیسرے (انڈیکس، n = 2) سے شروع ہونے والے بقیہ فبونیکی نمبرز کا تعین فار لوپ میں کیا جاتا ہے اور صف میں اپنی پوزیشنوں پر رکھا جاتا ہے۔ لہذا، فنکشن کو باطل واپس کرنا ہوگا۔ فار لوپ میں اصل بیان پچھلے دو نمبروں کو جوڑتا ہے۔

انڈیکس متغیر، i، وضاحت کے مقصد کے لیے n کی بجائے استعمال کیا گیا ہے۔

ایک مناسب جاوا مین کلاس (جاوا مین طریقہ کے ساتھ) یہ ہے:

عوام کلاس مرکزی {
عوام جامد باطل مرکزی ( تار args [ ] ) {
int m = 12 ;
int [ ] arr = نئی int [ m ] ;
فبونیکی اعتراض = نئی فبونیکی ( ) ;
اعتراض فبونیکی ( arr ) ;
کے لیے ( int میں = 0 ; میں < m ; میں ++ )
سسٹم . باہر . پرنٹ کریں ( arr [ میں ] + ' ) ;
سسٹم . باہر . پرنٹ ایل این ( ) ;
}
}

fibonacci() طریقہ سے نمبر تیار کرنے کے بعد، جاوا مین طریقہ انہیں پڑھتا ہے۔

مستقل وقت میں ایک فبونیکی نمبر تیار کرنا

ایک ریاضیاتی فارمولہ ہے جسے فبونیکی نمبر بنانے کے لیے استعمال کیا جا سکتا ہے، جب متعلقہ صفر پر مبنی اشاریہ دیا جائے، n۔ فارمولا ہے:

جہاں n صفر پر مبنی انڈیکس اور Fib ہے۔ n متعلقہ فبونیکی نمبر ہے۔ نوٹ کریں کہ مساوات کے دائیں طرف، یہ 5 کا مربع جڑ نہیں ہے جسے طاقت n تک بڑھایا جاتا ہے۔ یہ قوسین میں اظہار ہے جو پاور n تک اٹھایا جاتا ہے۔ اس طرح کے دو الفاظ ہیں۔

اگر n 0 ہے، Fib n 0 ہوگا۔ اگر n 1 ہے، Fib n 1 ہوگا۔ اگر n 2 ہے، Fib n 1 ہوگا۔ اگر n 3 ہے تو Fib n 2 ہوگا۔ اگر n 4 ہے، Fib n 3 ہو گا - اور اسی طرح. قاری اس فارمولے کی ریاضیاتی طور پر تصدیق کر سکتا ہے، n کے لیے مختلف قدروں کو بدل کر اور تشخیص کر کے۔

کوڈ کرنے پر، یہ فارمولہ n کے لیے صرف ایک فبونیکی نمبر پیدا کرے گا۔ اگر ایک سے زیادہ فبونیکی نمبرز درکار ہیں، تو فارمولے کے کوڈ کو مختلف متعلقہ اشاریہ جات میں سے ہر ایک کے لیے ایک بار کال کرنا ہوگا۔

جاوا میں، صرف ایک فبونیکی نمبر تیار کرنے کا طریقہ یہ ہے:

درآمد java.lang.* ;

کلاس فب {
دگنا fibNo ( int n ) {
دگنا فب این = ( ریاضی . پاؤ ( ( 1 + ریاضی . sqrt ( 5 ) ) / دو , n ) - ریاضی . پاؤ ( ( 1 - ریاضی . sqrt ( 5 ) ) / دو , n ) ) / ریاضی . sqrt ( 5 ) ;
واپسی فب این ;
}
}

java.lang.* پیکیج کو پروگرام کے آغاز میں درآمد کرنا پڑا۔ اس کی وجہ یہ ہے کہ پیکیج میں ریاضی کی کلاس ہے، جس میں پاور (پاؤ) اور مربع جڑ (sqrt) کے طریقے ہیں۔ یہاں حسب ضرورت جاوا طریقہ ریاضی کے فارمولے کو براہ راست لاگو کرتا ہے۔

اس فنکشن کے لیے وقت کی پیچیدگی O(1) ہے، ایک اہم آپریشن کا مستقل کنٹرول۔ مندرجہ بالا طریقہ کے لئے جاوا مین طریقہ کے ساتھ ایک مناسب جاوا مین کلاس ہے:

عوام کلاس مرکزی {
عوام جامد باطل مرکزی ( تار args [ ] ) {
int ن = گیارہ ;
فب اعتراض = نئی فب ( ) ;
دگنا صحیح = اعتراض fibNo ( ن ) ;
سسٹم . باہر . پرنٹ ایل این ( صحیح ) ;
}
}

انڈیکس n = 11 بھیجا جاتا ہے اور فبونیکی نمبر، 89 لوٹا جاتا ہے۔ آؤٹ پٹ ہے:

89.00000000000003

غیر ضروری اعشاریہ ہندسوں کو ہٹایا جا سکتا ہے، لیکن یہ کسی اور وقت کے لیے بحث ہے۔

نتیجہ

فبونیکی نمبر پورے نمبروں کی ایک خاص ترتیب ہیں۔ موجودہ نمبر حاصل کرنے کے لیے، فوری طور پر پچھلے دو متعلقہ نمبرز شامل کریں۔ پہلے دو فبونیکی نمبرز، 0 کے بعد 1، پوری ترتیب کے لیے پہلے سے اعلان شدہ ہیں۔ باقی فبونیکی نمبرز وہاں سے تیار ہوتے ہیں۔

انڈیکس 2 سے فبونیکی نمبر تیار کرنے کے لیے، جو کہ انڈیکس n-1 سے مماثل ہے، پرنسپل سٹیٹمنٹ کے ساتھ فار لوپ کا استعمال کریں:

int currNo = پی [ میں - 1 ] + پی [ میں - دو ] ;

جہاں currNo موجودہ Fibonacci نمبر ہے اور P n نمبرز کو ذخیرہ کرنے کے لیے صف ہے۔

کسی بھی صفر پر مبنی انڈیکس n سے صرف ایک فبونیکی نمبر بنانے کے لیے، ریاضی کا فارمولا استعمال کریں: