Module: (بايثون) الروتينات الفرعية. العودية


Problem

11/12

التكرار فوق السطور # 1

Theory Click to read/hide

مهمة في أبجدية لغة القبيلة "تومبا يومبا" أربعة أحرف: "K" ، "L" ، "M" و & quot؛ N & quot ؛. من الضروري أن تعرض على الشاشة جميع الكلمات المكونة من أحرف n التي يمكن بناؤها من أحرف هذه الأبجدية

المشكلة هي مشكلة القوة الغاشمة العادية التي يمكن اختزالها إلى مشكلة أصغر.
سنقوم باستبدال الأحرف بالتسلسل.
يمكن أن يكون الموضع الأول للكلمة واحدًا من الأحرف الأربعة للأبجدية ( K ، L ، M ، N ).
أولاً ، ضع الحرف & # 39 ؛ K & # 39 ؛ أولاً. بعد ذلك ، من أجل الحصول على جميع المتغيرات بالحرف الأول & # 39 ؛ K & # 39 ؛ ، تحتاج إلى تعداد جميع مجموعات الحروف الممكنة في n-1 المناصب نبسب ؛ و. (انظر الصورة)
وهكذا ، توصلنا إلى حل تعاودي: في حلقة ، انتقل من خلال جميع الأحرف الأولى الممكنة (وضع كل حرف من الحروف الأبجدية بدوره في المقام الأول) ولكل حالة ، قم ببناء كل "ذيول" ممكنة ؛ الطول n-1 .
نبسب ؛
تكرار تكراري للأحرف تحتاج إلى إيقاف العودية وإخراج الكلمة النهائية عندما يكون الجزء المتبقي فارغًا ( n = 0 ) ، أي تم تحديد كافة الأحرف بالفعل. & nbsp؛
سيبدو الإجراء العودي بالشكل التالي: & nbsp؛ <قبل> def TumbaWords (كلمة ، أبجدية ، ن): إذا ن & lt ؛ 1: طباعة (كلمة) يعود لـ c بالأبجدية: TumbaWords (كلمة + ج ، أبجدية ، ن - 1)

Problem

في أبجدية لغة القبيلة "تومبا-يومبا" أربعة أحرف: "K" ، "L" ، "M" و & quot؛ N & quot ؛. تحتاج إلى عرض جميع الكلمات المكونة من أحرف N & nbsp؛ التي يمكن إنشاؤها من أحرف هذه الأبجدية.