الانتقال إلى المحتوى الرئيسي

اكتب دالة تكرارية تقوم بإرجاع سلسلة من الأرقام من 1 إلى ن مفصولة باسم مسافة / موقع

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

في هذه المقالة ، سننظر في مهمة كتابة دالة تكرارية ستعيد سلسلة من الأرقام من 1 إلى ن ، مفصولة بمسافة. يمكن أن تكون هذه الوظيفة مفيدة ، على سبيل المثال ، عند إنشاء تسلسلات من الأرقام أو بيانات السلسلة.

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

  1. دالة العودية التي ترجع سلسلة من الأرقام من 1 إلى ن
  2. كتابة دالة تكرارية
  3. إرجاع سلسلة من الأرقام
  4. سؤال وجواب
  5. ما هي المعلمات التي تقبل وظيفة الحصول على الأرقام?
  6. ما هو الغرض من العودية في هذه الوظيفة?

دالة العودية التي ترجع سلسلة من الأرقام من 1 إلى ن

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

دالة أرقام متكررة (ن) {

إذا (ن === 1) {

العودة "1";

} آخر {

عودة الأرقام المتكررة (ن - 1) + "" + ن;

}

}

سيعود السلسلة"1 2 3 4 5".

وبالتالي ، قمنا بتنفيذ دالة تكرارية تقوم بإرجاع سلسلة من الأرقام من 1 إلى ن.

كتابة دالة تكرارية

الوظيفة العودية هي وظيفة تطلق على نفسها في جسمها. إنها أداة برمجة قوية تسمح لك بحل المهام المعقدة عن طريق تقسيمها إلى خطوات أبسط وأكثر قابلية للفهم.

عندما نكتب دالة تكرارية ، يجب علينا تحديد حالة أساسية من شأنها إنهاء استدعاء الوظيفة وإرجاع النتيجة. نحتاج أيضا إلى تحديد حالة متكررة تستدعي الوظيفة مرة أخرى ، عادة مع تغيير طفيف في بيانات الإدخال.

لنلق نظرة على مثال لدالة تكرارية تقوم بإرجاع سلسلة من الأرقام من 1 إلى ن مفصولة بمسافة:

وظيفة كريتنومبريسترينغ (ن) {

إذا (ن === 1) {

العودة '1';

} آخر {

عودة كريتنومبرسترينغ (ن-1) + '' + ن;

}

}

وحدة التحكم.سجل (كريتنومبرسترينغ (5)) ؛ / / المخرجات "1 2 3 4 5"

في هذا المثال ، يتم تعريف الحالة الأساسية على أنها ن = = = 1. عندما ن هو 1 ، تقوم الدالة بإرجاع السلسلة"1". في الحالة العودية ، تستدعي الوظيفة نفسها بالحجة ن - 1 ويضيف القيمة الحالية لـ ن إلى النتيجة.

لدينا وظيفة متكررة كريتنومبريسترينغ(5) يدعو أولا كريتنومبريسترينغ(4) ، ثم كريتنومبريسترينغ(3) ، كريتنومبريسترينغ(2) وأخيرا كريتنومبريسترينغ (1). في كل مرة نضيف القيمة الحالية ن إلى النتيجة والحصول على "1 2 3 4 5".

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

إرجاع سلسلة من الأرقام

لحل هذه المشكلة ، يمكننا كتابة دالة تكرارية ستعيد سلسلة من الأرقام من 1 إلى ن ، مفصولة بمسافة. العودية هي العملية التي تستدعي بها الوظيفة نفسها.

هنا مثال على وظيفة متكررة في بايثون:

ديف ريكورسيف_سترينغ (ن):

إذا ن = = 1:

العودة '1'

آخر:

سلسلة العودة المتكررة (ن-1) + '' + شارع (ن)

تأخذ الوظيفة المعلمة ن ، الذي يحدد الرقم الذي يجب أن تتكون منه السلسلة. إذا ن هو 1 ، تقوم الدالة بإرجاع السلسلة '1'. خلاف ذلك ، تستدعي الوظيفة نفسها بالمعلمة ن — 1 ، يضيف نتيجة المكالمة إلى الرقم الحالي ن وإرجاع السلسلة الناتجة.

على سبيل المثال ، إذا اتصلنا بوظيفة السلسلة المتكررة(5) ، فستعيد السلسلة '1 2 3 4 5'.

من المهم أن تتذكر أن الوظائف العودية يمكن أن تكون بطيئة وتتطلب المزيد من الذاكرة ، خاصة عند العمل بقيم كبيرة من ن. لذلك ، عند استخدام العودية ، يجب أن تكون حذرا وتحقق من حدود المكالمات العودية.

سؤال وجواب

ما هي المعلمات التي تقبل وظيفة الحصول على الأرقام?

ال جيت_أرقام تقبل الدالة معلمة واحدة ن ، والتي تحدد الرقم الذي يجب إرجاع السلسلة إليه. على سبيل المثال ، إذا اتصلت بوظيفة الحصول على الأرقام(5) ، فستعيد السلسلة "1 2 3 4 5".

ما هو الغرض من العودية في هذه الوظيفة?

يتم استخدام العودية لاستدعاء دالة نفسها مع انخفاض المعلمة بمقدار 1. وبالتالي ، فإن الوظيفة ستطلق على نفسها حتى تصل إلى حالة الإكمال (ن هو 1). تتيح لنا المكالمة العودية الحصول على سلسلة من الأرقام من 1 إلى ن مفصولة بمسافة.