وظیفه
به الفبای زبان قبیله «تومبا-یومبا» چهار حرف: "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)