فبونیکی نمبرز ایک خاص ترتیب ہیں جہاں پہلی قدر کو 0 کے طور پر پہلے سے اعلان کیا جاتا ہے اور دوسری قدر کو 1 کے طور پر پہلے سے اعلان کیا جاتا ہے۔ باقی اعداد ان دونوں سے پچھلے دو نمبروں کو جوڑ کر تیار کیے جاتے ہیں۔ تمام فبونیکی نمبر مثبت عدد ہیں، جو 0 سے شروع ہوتے ہیں۔ پہلے بارہ فبونیکی نمبرز اور وہ کیسے حاصل کیے جاتے ہیں درج ذیل ہیں:
0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89
جمع کے اظہار کے بغیر، ان فبونیکی نمبروں کو مندرجہ ذیل ٹیبل میں رکھا جا سکتا ہے:
0 | 1 | 1 | دو | 3 | 5 | 8 | 13 | اکیس | 3. 4 | 55 | 89 |
0 | 1 | دو | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | گیارہ |
پہلی قطار میں فبونیکی نمبرز ہیں۔ دوسری قطار میں صفر پر مبنی اشاریہ جات ہیں، یہ فرض کرتے ہوئے کہ فبونیکی نمبر ایک صف میں ہیں۔
فبونیکی نمبر O(n) وقت اور O(1) وقت میں تیار کیے جا سکتے ہیں۔ اس وقت پیچیدگی کے اظہار میں، n کا مطلب ہے n مین آپریشنز، اور 1 کا مطلب ہے 1 مین آپریشن۔ O(n) کے ساتھ، n فبونیکی نمبرز تیار ہوتے ہیں، 0 سے شروع ہوتے ہیں۔ O(1) کے ساتھ، ایک فبونیکی نمبر متعلقہ انڈیکس سے تیار ہوتا ہے۔ یہی وجہ ہے کہ یہ n مین آپریشنز کے بجائے صرف ایک اہم آپریشن لیتا ہے۔
اس مضمون کا مقصد یہ بتانا ہے کہ Python کا استعمال کرتے ہوئے، کسی بھی طرح سے، فبونیکی نمبر کیسے تیار کیے جائیں۔
فبونیکی نمبر کا فارمولا
فبونیکی نمبر کی رسمی تعریف یہ ہے:
جہاں ایف n صفر پر مبنی n اگر n 1 ہے، تو صرف 0 فبونیکی نمبر کے طور پر پرنٹ کیا جائے گا۔ اگر n 2 ہے، تو اس ترتیب میں 0 اور 1 فبونیکی نمبرز کے طور پر پرنٹ کیے جائیں گے۔ اگر n 3 ہے، تو 0، 1، اور 1 اس ترتیب میں فبونیکی نمبرز کے طور پر پرنٹ کیے جائیں گے۔ اگر n 4 ہے، تو 0، 1، 1، اور 2 اس ترتیب میں فبونیکی نمبرز کے طور پر پرنٹ کیے جائیں گے۔ اگر n 5 ہے، تو 0، 1، 1، 2، اور 3 اس ترتیب میں، فبونیکی نمبرز کے طور پر پرنٹ کیے جائیں گے۔ اگر n 6 ہے، تو 0، 1، 1، 2، 3، اور 5 کو فبونیکی نمبرز کے طور پر پرنٹ کیا جائے گا، اس ترتیب میں – اور اسی طرح۔ پہلے n فبونیکی نمبرز بنانے کے لیے Python فنکشن یہ ہے: یہ n عناصر کی ایک صف بنانے سے شروع ہوتا ہے، سبھی کو صفر پر شروع کیا جاتا ہے۔ اس صف میں فبونیکی نمبر ہوں گے۔ پہلا فبونیکی نمبر، 0، پہلے سے موجود ہے۔ دوسرا فبونیکی نمبر، 1، اگلے بیان (فنکشن میں) کے ذریعے تفویض کیا جاتا ہے۔ اس کے بعد فار لوپ ہے، جو انڈیکس 2 سے شروع ہو کر n سے بالکل پہلے ہوتا ہے۔ اس کا بیان ہے: یہ فوری طور پر پچھلے دو نمبروں کو جوڑتا ہے۔ فنکشن کو کال کرنے اور پہلے بارہ فبونیکی نمبر پرنٹ کرنے کا کوڈ یہ ہو سکتا ہے: N = 12 آؤٹ پٹ ہے: ایک ریاضیاتی فارمولا ہے جو صفر پر مبنی انڈیکس کو اس کے متعلقہ فبونیکی نمبر سے جوڑتا ہے۔ فارمولا ہے: نوٹ کریں کہ مساوات کے دائیں طرف، یہ 5 کا مربع جڑ نہیں ہے جسے طاقت n تک بڑھایا جاتا ہے۔ یہ قوسین میں اظہار ہے جو پاور n تک اٹھایا جاتا ہے۔ اس طرح کے دو الفاظ ہیں۔ اگر n 0 ہے، تو Fibn 0 ہوگا۔ اگر n 1 ہے، Fib n 1 ہوگا۔ اگر n 2 ہے، Fib n 1 ہوگا۔ اگر n 3 ہے تو Fib n 2 ہوگا۔ اگر n 4 ہے، Fib n 3 ہو گا - اور اسی طرح. قاری اس فارمولے کی ریاضیاتی طور پر n کے لیے مختلف قدروں کو بدل کر اور تشخیص کر کے تصدیق کر سکتا ہے۔ n اس فارمولے میں ایک صفر پر مبنی انڈیکس ہے۔ اس فارمولے کے لیے ازگر کوڈ ہے: ریاضی درآمد کریں۔ ریاضی کا ماڈیول درآمد کیا گیا تھا۔ اس میں مربع جڑ کا فنکشن ہے۔ آپریٹر، ** پاور کے لیے استعمال ہوتا ہے۔ فنکشن fibNo() فارمولے کو براہ راست لاگو کرتا ہے۔ fibNo() فنکشن کے لیے ایک مناسب کال اور پرنٹنگ ہے: N = 11 آؤٹ پٹ ہے: جواب سے غیر ضروری اعشاریہ ہندسوں کو ہٹانا ممکن ہے۔ تاہم، یہ کسی اور وقت کے لئے بحث ہے. اگر مختلف n اشاریہ جات کے لیے مختلف فبونیکی نمبرز درکار ہیں، تو مختلف متعلقہ فبونیکی نمبرز کو واپس کرنے کے لیے ہر ایک n انڈیکس کے لیے فنکشن fibNo() کو ایک بار کال کرنا ہوگا۔ درج ذیل پروگرام صفر پر مبنی اشاریہ جات کے لیے ایسا کرتا ہے، 7 سے 9 (مشتمل): ریاضی درآمد کریں۔ آؤٹ پٹ ہے: نوٹ کریں جس طرح سے فار لوپ کو Python میں کوڈ کیا گیا ہے۔ پہلا انڈیکس 7 ہے۔ اگلا انڈیکس 8 ہے، اور آخری انڈیکس 9 ہے۔ 10 رینج آرگومینٹ میں 9 + 1 ہے۔ 10 کی پوزیشن میں قدر آخری صفر پر مبنی انڈیکس جمع 1 ہونی چاہیے۔ پہلا دلیل، 7، شروع صفر پر مبنی انڈیکس ہے۔ فبونیکی نمبر پورے اعداد (مثبت عدد) کی ایک خاص ترتیب ہیں۔ یہ 0 سے شروع ہوتا ہے، اس کے بعد 1 غیر مشروط طور پر۔ باقی نمبرز کو وہاں سے فوری پچھلے دو نمبروں کو شامل کرکے تیار کیا جاتا ہے۔ پہلے n فبونیکی نمبرز حاصل کرنے کے لیے، 0 اور 1 کو پہلے دو کے طور پر قبول کریں، پھر باقی کے لیے، ایک بیان کے ساتھ فار لوپ استعمال کریں جیسے: جو فوری طور پر پچھلے دو نمبروں کو جوڑتا ہے۔ صفر پر مبنی انڈیکس n سے صرف ایک فبونیکی نمبر حاصل کرنے کے لیے، فارمولہ استعمال کریں:
O(n) وقت میں فبونیکی نمبر تیار کرنا
arr = [ 0 ] * ( n )
arr [ 1 ] = 1
کے لیے میں میں رینج ( دو , n ) :
arr [ میں ] = arr [ میں - 1 ] + arr [ میں - دو ]
واپسی arr
A = فبونیکی(N)
رینج میں i کے لیے (N):
پرنٹ (A[i]، end=')
پرنٹ کریں() مستقل وقت میں ایک فبونیکی نمبر تیار کرنا
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / دو ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / دو ) ** n ) / math.sqrt ( 5 )
واپسی فب این
حق = fibNo(N)
پرنٹ (ریٹ)
FibN = ( ( ( 1 +math.sqrt ( 5 ) ) / دو ) ** n - ( ( 1 -math.sqrt ( 5 ) ) / دو ) ** n ) / math.sqrt ( 5 )
واپسی فب این
کے لیے میں میں رینج ( 7 , 10 ) :
پرنٹ کریں ( fibNo ( میں ) , اختتام = '' )
پرنٹ کریں ( )
نتیجہ