اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

هذا الكود خاص بمتتالية فيبوناتسي Fibonacci Sequence وهي بالشكل التالي:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ...

تبدأ هذه المتتالية بالأرقام 0 ثم 1 ، ويكون كل رقم فيها عبارة عن مجموع الرقمين السابقين له، فجمع هذين الرقمين (0 و 1) يساوي 1 ثم يتم جمع الرقمين الأخيرين 1 و 1 معًا للحصول على 2 ، ثم يتم جمع الرقمين الأخيرين 1 و 2 للحصول على 3 وهكذا ، أي أننا نقوم بجمع كل رقمين للحصول على رقم جديد

الكود الخاص بك يقوم بجلب العنصر الذي ترتيبه k، حيث يتم تمرير رقم k وليكن 4 على سبيل المثال، فيتم إعادة الرقم الرابع في المتتالية السابقة، أي 3 (نبدأ العد من صفر)

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 ...
^  ^  ^  ^  ^
0  1  2  3  4	يتم إعادة الرقم الرابع

أما إذا تم تمرير الرقم 6 على سبيل المثال فسيتم إعادة الرقم 8 (لأنه الرقم السادس في المتتالية).

يمكن تتبع طريقة عمل الدالة g في الكود الخاص بك من خلال رسم شجرة تفرعية، بالشكل التالي:

fibbo.png.dda66e18dc5ca4fb8ac423d508da6594.png

في هذه الصورة يتم تمرير الرقم 4 إلى الدالة g والتي بدورها تستدعي الدالة g مرتيبن، مرة بالرقم 3 (4-1) ومرة أخرى بالرقم 2 (4-2). ثم في كل مرة من المرتين يتم إستدعاء الدالة g مرتين إضافيتين، مرة بالرقم 2 (3-1)، ومرة بالرقم 1 (3-2) ... إلخ

 

fibbo2.png.f28bc1440e18ebb255e6b7577bc999b8.png

يمكننا أن نقوم بإستبدال الإستدعائات الأخيرة حيث سيتم إعادة الأرقام 2 و 1 و 0، جمع هذه الأقام معًا سوف يؤدي إلى إعادة الأرقام 3 و 2

في النهاية سوف نحل على الرقم 5 وهو العنصر الرابع في المتتالية:
fibbo4.png.d28ce98fa5d01b480097415b5a3f2e7c.png

يمكنك الإطلاع على شرح كامل لهذه المتتالية وكيفية التعامل معها بأكثر من لغة برمجة من خلال موسوعة حسوب (أعداد فيبوناتشي).

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...