Görev
Kabile dilinin alfabesinde «Tumba-Yumba» dört harf: "K", "L", "M" ve "N". Bu alfabenin harflerinden oluşturulabilecek n harften oluşan tüm kelimelerin ekranda gösterilmesi gerekmektedir
Sorun, daha küçük bir soruna indirgenebilen normal bir kaba kuvvet sorunudur.
Sözcüğün yerine harfleri sırayla koyacağız.
Bir kelimenin ilk konumu alfabenin 4 harfinden biri olabilir (
K, L, M, N).
İlk önce '
K' harfini ilk sıraya koyun. Ardından, ilk harfi '
K' olan tüm varyantları elde etmek için, kalan
n-1 içindeki tüm olası harf kombinasyonlarını numaralandırmanız gerekir. kod> konumlar ve .etc. (resmi görmek)
Böylece, özyinelemeli bir çözüm bulduk: bir döngüde, tüm olası ilk harfleri gözden geçirin (alfabenin her harfini ilk sıraya koyarak) ve her durum için tüm olası "kuyrukları" oluşturun; uzunluk n-1
.
Karakterlerin yinelemeli tekrarı
Geriye kalan kısım boş olduğunda (n = 0
), yani tekrarlamayı durdurmanız ve bitmiş kelimeyi çıktı almanız gerekir. tüm harfler zaten seçili.
Özyinelemeli prosedür şuna benzer:
def TumbaWords(kelime, alfabe, n):
eğer n < 1:
baskı(kelime)
geri dönmek
alfabede c için:
TumbaWords(kelime+c, alfabe, n - 1)