اكتب لي دالة تكرارية لحساب عدد فيبوناتشي
أدناه دالة بايثون متكررة fib ((n) التي تحسب عدد فيبوناتشي. يتم تقسيم هذا إلى حالة أساسية وحالة متكررة. يتم إعطاء الحالة الأساسية بحقيقة أن العضوين الأولين من تسلسل فيبوناتشي هم 0 و 1 ، لذلك fib(0) = 0 و fib(1) = 1. يتم إعطاء الحالة التكرارية من خلال حقيقة أن عدد فيبوناتشي التاسع f_n يمكن كتابته كمجموع عددين من أرقام فيبوناتشي السابقة ، لذلك f_n = f_{n-1} + f_{n-2}. وضع كل هذا معا، نحصل على  ` ` ` def fib ((n): # الحالة الأساسية إذا n == 0: العودة 0 إذا n == 1: العودة 1  # حالة متكررة العودة fib ((n - 1) + fib ((n - 2) ` ` `  هذا سيقوم بحساب عدد فيبوناتشي الـ n بشكل صحيح لأدخلات الأعداد الصحيحة غير السالبة n. ومع ذلك ، فإن حساب أرقام فيبوناتشي بشكل متكرر بهذه الطريقة يستغرق وقتًا أسيًا في قيمة n ، لذلك قد يكون هذا الكود بطيئاً جدًا للمدخلات الكبيرة. يمكن تحسينه عن طريق حفظ النتائج السابقة، أو باستخدام نهج غير متكرر. يمكن للأساليب التكرارية البسيطة حل المشكلة بشكل أسرع، وتوجد تعبيرات ذات شكل مغلق لعدد فيبوناتشي الـ نيسان وهي أسرع في التقييم.