تنفيذ تسلسل فيبوناتشي في بايثون

نشرت: 2023-02-23

Python هي لغة برمجة قوية ومتعددة الأغراض تسهل تنفيذ الشبكات العصبية الاصطناعية وتدعم معالجة اللغة الطبيعية والتعلم العميق والتعرف على الوجه والخوارزميات الجينية والعديد من المهام القائمة على الذكاء الاصطناعي.

تستكشف هذه المقالة بعض الطرق الرئيسية التي يمكن من خلالها استخدام بايثون لإنشاء تسلسل فيبوناتشي بدقة - مثال رائع لخوارزميات بسيطة نسبيًا ليست مفيدة فقط في حد ذاتها ولكنها غالبًا ما تكون أساسًا لبناء برامج متقدمة قادرة على التعقيد الوظائف المعرفية.

جدول المحتويات

ما هو تسلسل فيبوناتشي؟

ربما يكون تسلسل فيبوناتشي من بين أبسط المتتاليات الرياضية المعروفة للبشرية وأقدمها وأكثرها شهرة.

إنها سلسلة متصلة من الأعداد الصحيحة ، حيث كل رقم متتالي يساوي مجموع عددين سابقين. ، 21 ، 34 ، 55 ، 89 ، 144 ، 233 ، 377 ، 610 ، 987 ، 1597 ، 2584 ، 4181 ، 6765 ، 10946 ، 17711 ، 28657 ، 46368 وما إلى ذلك.

مع وجود الصفر كنقطة بداية ، فإن تسلسل فيبوناتشي يمتد إلى أجل غير مسمى بطريقة ثنائية الاتجاه على النحو التالي:
... 610 ، -377 ، 233 ، -144 ، 89 ، -55 ، 34 ، -21 ، 13 ، -8 ، 5 ، -3 ، 2 ، -1 ، 1 ، 0 ، 1 ، 1 ، 2 ، 3 ، 5 ، 8 ، 13 ، 21 ، 34 ، 55 ، 89 ، 144 ، 233 ، 377 ، 610 ... يُعرف التسلسل الموجود على يسار الصفر باسم تسلسل "نيجافيبوناتشي".

تحقق من دوراتنا التكنولوجية المجانية لتتفوق على المنافسة.

يمكن تمثيل تسلسل فيبوناتشي رياضيًا على النحو التالي:

ن 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
x ن 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610

حيث n هي عدد المصطلح و x n هي قيمة المصطلح. الصيغة لحساب قيمة المصطلح x n هي:
x n = x n-1 + x n-2

إذن ، قيمة المصطلح رقم 8 على سبيل المثال هي:

× 8 = × 7 + × 6

× 8 = 13 + 8

× 8 = 21

إليك القليل من التوافه المتعلقة بتسلسل فيبوناتشي: يتم ملاحظة يوم فيبوناتشي في 23 نوفمبر ، حيث قد يتم تمثيل التاريخ بالأرقام 1 و 1 و 2 و 3 - والتي تمثل مقطعًا متسلسلًا بشكل صحيح من سلسلة أرقام فيبوناتشي.

استكشف دوراتنا التدريبية الشهيرة في هندسة البرمجيات

ماجستير العلوم في علوم الكمبيوتر من جامعة جون مورس بليفربول و IIITB برنامج شهادة الأمن السيبراني من معهد كاليفورنيا للتكنولوجيا CTME
برنامج تدريب تطوير المكدس الكامل برنامج PG في Blockchain
برنامج PG التنفيذي في تطوير Full Stack
عرض جميع دوراتنا أدناه
دورات هندسة البرمجيات

تاريخ وأصول متتالية فيبوناتشي

ليوناردو بيسانو بوجولو ، المعروف باسم فيبوناتشي ، والذي يترجم في اللغة الإيطالية العامية تقريبًا إلى "ابن بوناتشي".

كان لفيبوناتشي الفضل في صياغة هذا التسلسل الخاص للأرقام ، والذي - نتيجة لذلك - سمي باسمه. قدمه إلى جزء كبير من أوروبا الغربية في بداية القرن الثالث عشر الميلادي عن طريق كتابه التاريخي -Liber Abaci.

يعتبر فيبوناتشي على نطاق واسع من بين علماء الرياضيات الأكثر موهبة في عصره ، وكان له الفضل أيضًا في التبني الواسع للأرقام الهندوسية العربية في جميع أنحاء أوروبا ، والتي كانت تستخدم حتى ذلك الحين الأرقام الرومانية الأكثر تعقيدًا.

ومع ذلك ، فإن ما يسمى اليوم بتسلسل فيبوناتشي ، معروف الآن أنه كان مستخدمًا في الهند القديمة منذ القرن الثالث قبل الميلاد.

وجدت تعبيرًا في Pingala-sutras ، وهي أطروحة قديمة لعروض السنسكريتية ، وكذلك في Natya Shastra ، أطروحة عن الفنون المسرحية الهندية القديمة ، منسوبة إلى حكماء الهند القديمة المبجلين ، أشاريا بينغالا وباراتا موني ، على التوالي.

يظهر التعليق الأكثر تحديدًا على التسلسل في عمل Virahanka في بداية القرن الثامن الميلادي. على الرغم من أن هذا النص نفسه لم يتم تتبعه ، فقد تمت الإشارة إليه واقتباسه على نطاق واسع في عمل جوبالا عام 1135 م. من قبيل الصدفة ، تمثل أرقام تلك السنة سلسلة متتالية من أرقام فيبوناتشي.

اشتهر باحث هندي آخر في الإيقاع المترالي ، أشاريا هيماشاندرا ، بمعرفة وثيقة بالتسلسل ، والذي وصفه بتفصيل كبير في عام 1150 م. هذا يسبق تاريخ عمل فيبوناتشي بأكثر من 50 عامًا.

تحقق من دورات تطوير البرمجيات upGrad

صيغة بينيه

مثل كل التسلسلات الثابتة العودية ذات المعاملات الثابتة ، يمكن عرض أرقام فيبوناتشي كتعبير مغلق الشكل أصبح يُعرف باسم صيغة Binet. سميت على اسم جاك فيليب ماري بينيه ، عالم الرياضيات الفرنسي البارز من أوائل القرن التاسع عشر ، يمكن تمثيل صيغة بينيه على النحو التالي:

بالنظر إلى أن F n هو رقم فيبوناتشي التاسع:

ما يمكن اشتقاقه من الصيغة أعلاه هو حقيقة أنه باستثناء الأرقام القليلة الأولى ، فإن النسبة بين كل زوج متتالي من الأرقام في سلسلة فيبوناتشي تتقارب تدريجياً مع ما يشار إليه بالنسب الذهبية - 1: 1.618 ، يُشار إليها بالرقم 21. حرف الأبجدية اليونانية - Φ (فاي).

هذا يعني أن كل رقم في السلسلة هو 0.6180339887 من رقم فيبوناتشي الذي يليه أو أن كل رقم متتالي هو 1.6180339887 ضعف الرقم الذي يسبقه في تسلسل فيبوناتشي.

مهارات تطوير البرمجيات عند الطلب

دورات جافا سكريبت دورات جافا الأساسية دورات هياكل البيانات
دورات Node.js دورات SQL دورات تطوير مكدس كاملة
دورات NFT دورات DevOps دورات البيانات الضخمة
دورات React.js دورات الأمن السيبراني دورات الحوسبة السحابية
دورات تصميم قواعد البيانات دورات بايثون دورات العملات المشفرة

تسلسل فيبوناتشي والنسبة الذهبية

تزداد أهمية متتالية فيبوناتشي ومشتقاتها ، النسبة الذهبية ، بشكل كبير بسبب تكرارها المتكرر بشكل غير متوقع في الطبيعة. تتضمن بعض الأمثلة الأكثر شيوعًا على ذلك ما يلي:

  • عدد البتلات على الزهرة هو رقم فيبوناتشي دائمًا تقريبًا ، سواء أكان الزنبق ذو 3 بتلات ، أو الزنبق ذو 5 بتلات ، أو زهرة الهندباء 21 بتلة ، أو ديزي 34 بتلة.
    ومن المثير للاهتمام ، أن هذا التوافق الشديد مع أرقام فيبوناتشي يبدو أنه نتاج التصميم الدارويني ، فقد وجد العلماء أن هذه الترتيبات الخاصة بتلات الزهور تضمن حصول كل واحدة من هذه الأزهار على التعرض الأمثل لأشعة الشمس والرطوبة وعوامل التلقيح مثل الطيور والحشرات. .
  • تُرى النسبة الذهبية أو في جميع الأنماط اللولبية التي تحدث بشكل طبيعي تقريبًا - من رؤوس بذور عباد الشمس إلى المجرات بأكملها ، ومن النتوءات على مخروط الصنوبر إلى الأعاصير ، ومن أشواك الأناناس إلى انحناء قرون الماعز ، ومن الأزهار. من القرنبيط إلى الزهرة على بصمة الإنسان.
    يعتبر النمط المتصاعد لقشرة نوتيلوس تمثيلًا مبدعًا بشكل خاص لما يسمى "حلزونية فيبوناتشي".
  • تشعب الأشجار وأنظمة الجذور ، والنسبة بين ذكور وإناث النحل في خلية نحل ، وأجزاء الجسم المختلفة للحيوانات - من الميكروبات إلى القواقع ، والسلاحف إلى الحيتان ، كلها تتوافق مع النسبة الذهبية.
  • جوانب فسيولوجيا الإنسان - النسبة بين طول الجسم الإجمالي والمسافة من رؤوسنا إلى أطراف أصابعنا ، على سبيل المثال ، أو النسبة بين طول الساعدين وأيدينا ، كلها مصممة وفقًا لـ Φ.
    القوقعة في الأذن البشرية عبارة عن حلزوني فيبوناتشي ، وكذلك الحبل السري. يُعتقد أيضًا أننا ننجذب لا شعوريًا إلى الوجوه التي تقترب نسب ارتفاعها إلى عرضها من النسبة الذهبية.

الرياضيات في جوهرها هي محاولة لاكتشاف الأنماط في كل الأشياء. لا توجد ساحة أفضل أو أكثر انتشارًا للبحث عن هذه الأنماط من حضن الطبيعة الأم.

من الكائنات الحية الدقيقة إلى المجرات ، يجد تسلسل فيبوناتشي انعكاسًا في مجموعة هائلة من الفسيولوجيا الطبيعية والظواهر ، من الميكروسكوب إلى الكوني في المقياس - ولسبب وجيه.

تمنح النسبة الذهبية أو Φ توازنًا مريحًا للتناغم الجمالي والوظيفي لكل شيء تجده تعبيراً فيه. ولهذا السبب يُشار أيضًا إلى النسبة الذهبية على أنها النسبة الإلهية.

لكن أهمية تسلسل فيبوناتشي تمتد إلى ما هو أبعد من العالم الطبيعي ، حيث تجد تعبيرًا في مجموعة واسعة من المساعي البشرية - عبر الرياضيات والعلوم والفنون.

اقرأ مقالاتنا الشهيرة المتعلقة بتطوير البرمجيات

كيف يتم تنفيذ تجريد البيانات في Java؟ ما هي الطبقة الداخلية في جافا؟ معرفات Java: التعريف والنحو والأمثلة
فهم التغليف في OOPS بأمثلة شرح حجج سطر الأوامر في لغة سي أهم 10 ميزات وخصائص للحوسبة السحابية في عام 2022
تعدد الأشكال في جافا: المفاهيم والأنواع والخصائص والأمثلة الحزم في Java وكيفية استخدامها؟ برنامج Git التعليمي للمبتدئين: تعلم Git من الصفر

توليد تسلسل فيبوناتشي باستخدام بايثون

يعد تسلسل فيبوناتشي والنسبة الذهبية جزءًا لا يتجزأ من جوانب مختلفة من:

  • الجبر والهندسة والإحصاء وعلم المثلثات - التي يمكن تطبيقها على الممارسات الاقتصادية المختلفة وتحليل سوق الأوراق المالية.
  • علم الأحياء والفيزياء وعلوم الكمبيوتر - التي تجد تطبيقات في البيولوجيا التركيبية وعلم الوراثة والهندسة المدنية والميكانيكية والهندسة المعمارية والتصميم الداخلي وبالطبع برمجة الكمبيوتر.
  • الفن والتصميم الجرافيكي وكذلك الشعر والموسيقى والرقص

غالبًا ما تكون خطوة أساسية في إنشاء مجموعة متنوعة من التطبيقات المفيدة المرتبطة بالموضوعات المذكورة أعلاه وما بعدها.

يمكن إنشاء تسلسل فيبوناتشي باستخدام مجموعة متنوعة من لغات البرمجة. كما ذكرنا سابقًا ، تعد Python واحدة من أقوى هذه العناصر وأكثرها تنوعًا - فهي قادرة على استخدام ومعالجة أرقام فيبوناتشي وتسلسل فيبوناتشي بعدة طرق من أجل تطوير بعض الحلول التقنية الأكثر تطورًا.

تحقق من مبرمج الشهادة المتقدم upGrad في Blockchain من IIIT Bangalore

فيما يلي بعض الطرق التي يمكن من خلالها استخدام بايثون لإنشاء تسلسل فيبوناتشي:

نهج تكراري

في هذه الطريقة ، الخوارزمية :

  • يخصص أي متغيرين لتمثيل المصطلحين الأوليين المتتاليين داخل التسلسل. حيث يمثل 0 الحد الأول من المتتالية ، ويمثل 1 الحد الثاني.
  • يضبط النطاق المطلوب للمصطلحات المراد حسابها في التسلسل والحلقة من 0 إلى أعلى.
  • في كل تكرار ، الخوارزمية:
    • تجمع المتغيرين.
    • ثم يخصص قيمة المتغير الثاني للمتغير الأول
      ومجموع المتغيرين السابقين للمتغير الثاني.
    • وما إلى ذلك وهلم جرا…

سيتم كتابة الكود المقابل على النحو التالي :

def fibo (الأسطوانات):

أ = 0

ب = 1

بالنسبة لـ i in xrange (0 ، 20):

طباعة أ

أ ، ب = ب ، أ + ب

سيكون الناتج المقابل هو أول عشرين رقمًا من تسلسل فيبوناتشي :

0 ، 1 ، 1 ، 2 ، 3 ، 5 ، 8 ، 13 ، 21 ، 34 ، 55 ، 89 ،
144 ، 233 ، 377 ، 610 ، 987 ، 1597 ، 2584 ، 4181

النهج التكراري

في هذه الطريقة ، تستمد الخوارزمية :

قيمة كل مصطلح متتالي عن طريق جمع قيمة المصطلحين السابقين. يمكن تمثيل هذا كمصطلح n = مصطلح n-1 + مصطلح n-2.

الاستثناءان الوحيدان لهذه القاعدة هما عندما تكون قيمة المصطلحين 0 و 1 ، وكلاهما يُرجع قيمًا غير متغيرة. يمكن تمثيل هذه الاستثناءات على أنها مصطلح n = مصطلح n.

سيتم كتابة الكود المقابل على النحو التالي :

def recur_fodo (n):

إذا كانت n <= 1:

عودة

آخر:

العودة (recur_fibo (n-1) + recur_fibo (n-2))

Nterms = 20

# تحقق مما إذا كان عدد المصطلحات صالحًا

إذا nerms <= 0:

طباعة ("الرجاء إدخال عدد صحيح موجب")

آخر:

طباعة ("تسلسل فيبوناتشي")

لأني في النطاق (nterms):

طباعة (recur_fibo i))

سيكون الناتج المقابل هو أول عشرين رقمًا من تسلسل فيبوناتشي :

0 ، 1 ، 1 ، 2 ، 3 ، 5 ، 8 ، 13 ، 21 ، 34 ، 55 ، 89 ،
144 ، 233 ، 377 ، 610 ، 987 ، 1597 ، 2584 ، 4181

بعض التطبيقات المستقلة لتسلسل فيبوناتشي

بالإضافة إلى كونها خطوة أساسية في تطوير العديد من النماذج والتطبيقات المعقدة ، فإن أرقام فيبوناتشي ، في حد ذاتها ، تمتلك بعض الخصائص الفريدة التي تجعلها لا تقدر بثمن في أداء مهام معينة:

  • يمكن استخدام أرقام فيبوناتشي لتحليل وقت التشغيل الحسابي لخوارزمية إقليدس لتحديد أكبر قاسم مشترك لزوج عشوائي من الأعداد الصحيحة ، بالنظر إلى حقيقة أن زوجًا من أرقام فيبوناتشي المتتالية يمثل عادةً التحدي الأكبر لهذه الخوارزمية.
  • تمثل أرقام فيبوناتشي بشكل فريد تسلسلًا كاملاً ، بحيث يكون كل عدد صحيح موجب في السلسلة هو مجموع رقمين فيبوناتشي ، يمكن استخدام أي منهما مرة واحدة فقط.
  • ساعدت الخوارزميات المستندة إلى أرقام فيبوناتشي في تطوير تقنية بحث فيبوناتشي ، وهيكل بيانات فيبوناتشي ، ورسومات فيبوناتشي المكعبة المستخدمة لربط الأنظمة المتوازية والموزعة.
  • تُستخدم أرقام فيبوناتشي في لعبة البوكر سكروم - وهي تقنية مبنية على الإجماع ولعبة لتقدير أهداف التطوير في تطوير البرمجيات.
  • يستخدم ارتداد مستويات فيبوناتشي بشكل شائع في التحليل الفني لتداول سوق الأسهم.

ختاماً

لقد حاولنا ، على مدار هذه المقالة ، إثارة اهتمامك بتسلسل فيبوناتشي أو النسبة الذهبية - سماتها الرئيسية وتكرارها المتكرر المذهل في العالم الطبيعي - سواء كان حيًا أو غير حي.

لقد حاولنا التقاط التأثير وإعادة إنشاء العجائب التي خلقتها هذه الظاهرة الرياضية عبر سلسلة متنوعة ومتعددة الأبعاد على نطاق واسع من المساعي البشرية - الفنون والعلوم والهندسة والتكنولوجيا والتشريح وعلم الوراثة والاقتصاد والتمويل ... وأكثر من ذلك بكثير .

لقد حاولنا إحياء كيف يمكن أن تساعدك لغة برمجة شديدة التنوع تسمى Python على التعامل مع هذه المفاهيم الرياضية لإفادة البشرية بطرق متنوعة بشكل غير متوقع - بشكل مباشر وغير مباشر.

نأمل بشدة أن يكون هذا المزيج الفعال من Python و Fibonacci Sequence وسيستمر في جذب خيالك وإشعال عقلك وإشعال تطلعاتك وإلهامك إلى أعلى مستويات الإنجاز. ترميز سعيد! أحلام سعيدة!

في upGrad ، نتفهم أهمية التعلم العملي والعملي - خاصة عندما يتعلق الأمر بتطوير البرمجيات. ونتيجة لذلك ، فإن دوراتنا ومبادراتنا التدريبية لها طابع عملي في جوهرها. إحدى هذه المبادرات هي برنامج Full Stack Development Bootcamp الذي سيساعدك على تطوير جميع المهارات ذات الصلة المطلوبة للتميز في التطوير الشامل.

ترغب في مشاركة هذه المقالة؟

خطط لوظيفتك في تطوير البرمجيات الآن!

تقدم للحصول على ماجستير العلوم في علوم الكمبيوتر