نویں فبونیکی نمبر کا حساب لگانے کے لیے مجھے ایک تکراری فنکشن لکھیں۔
-
ذیل میں ایک تکرار پذیر Python فنکشن fib(n) ہے جو nth Fibonacci نمبر کی گنتی کرتا ہے۔ یہ ایک بیس کیس اور ایک تکراری کیس میں تقسیم ہے۔ بیس کیس اس حقیقت سے دیا گیا ہے کہ فبونیکی ترتیب کی پہلی دو اصطلاحات 0 اور 1 ہیں، لہذا fib(0)=0 اور fib(1)=1۔ تکراری صورت اس حقیقت سے دی گئی ہے کہ نویں فبونیکی نمبر f_n کو پچھلے دو فبونیکی نمبروں کے مجموعہ کے طور پر لکھا جا سکتا ہے، لہذا f_n = f_{n-1} + f_{n-2}۔ ان سب کو ایک ساتھ رکھتے ہوئے، ہمیں   ```  def fib(n) ملتا ہے:   # base case   if n == 0:    return 0   if n == 1:    return 1    # recursive case   return fib(n - 1) + fib(n - 2)  ```   یہ غیر منفی انٹیجر ان پٹس n کے لیے nویں فبونیکی نمبر کا صحیح حساب لگائے گا۔ تاہم، اس طرح سے فبونیکی نمبروں کا بار بار حساب لگانے میں n کی قدر میں تیزی سے وقت لگتا ہے، اس لیے یہ کوڈ بڑے ان پٹ کے لیے بہت سست ہو سکتا ہے۔ پچھلے نتائج کو یاد کرکے، یا غیر تکراری طریقہ استعمال کرکے اسے بہتر بنایا جا سکتا ہے۔ سادہ تکراری نقطہ نظر مسئلے کو زیادہ تیزی سے حل کر سکتے ہیں، اور نویں فبونیکی نمبر کے لیے بند شکل کے تاثرات موجود ہیں اور جانچنے کے لیے اور بھی تیز ہیں۔