Module: زیربرنامه های (پایتون). بازگشت


Problem

11/12

تکرار روی خطوط شماره 1

Theory Click to read/hide

وظیفه
به الفبای زبان قبیله «تومبا-یومبا» چهار حرف: "K"، "L"، "M" و "N". لازم است تمام کلمات متشکل از n حرفی که از حروف این الفبا ساخته می شوند روی صفحه نمایش داده شوند

مشکل یک مشکل brute-force معمولی است که می تواند به یک مشکل کوچکتر کاهش یابد.
ما به ترتیب حروف را جایگزین کلمه می کنیم.
اولین موقعیت یک کلمه می تواند یکی از 4 حرف الفبا (K, L, M, N) باشد.
ابتدا حرف 'K' را اول قرار دهید. سپس، برای به دست آوردن همه انواع با حرف اول 'K'، باید همه ترکیب‌های ممکن حروف را در n-1 موقعیت‌ها و .etc. (تصویر را ببینید)
بنابراین، ما به یک راه حل بازگشتی رسیدیم: در یک حلقه، تمام حروف اول ممکن را مرور کنید (هر حرف الفبا را به نوبه خود در وهله اول قرار دهید) و برای هر مورد تمام "دم" های ممکن را بسازید. طول n-1.
 
تکرار بازگشتی کاراکترها
شما باید بازگشت را متوقف کنید و زمانی که قسمت باقی مانده خالی است (n = 0)، کلمه تمام شده را خروجی بگیرید. همه حروف قبلا انتخاب شده اند. 
روال بازگشتی به این صورت است:  <پیش> def TumbaWords (کلمه، الفبا، n): اگر n < 1: چاپ (کلمه) برگشت برای c در الفبا: TumbaWords (کلمه + ج، الفبا، n - 1)

Problem

به الفبای زبان قبیله «tumba-yumba» چهار حرف: "K"، "L"، "M" و "N". شما باید تمام کلمات متشکل از N  حروفی را که می‌توان از حروف این الفبا ساخت، نمایش دهید.