タスク
部族の言語「Tumba-Yumba」のアルファベットでは、 4文字:「K」、「L」、「M」および「N」。このアルファベットの文字から組み立てられる n 文字で構成されるすべての単語を画面上に表示する必要があります
この問題は通常の総当たり問題ですが、より小さな問題にまとめることができます。
単語を順次文字に置き換えて
いきます。
単語の最初の位置は、アルファベットの 4 文字 (
K、L、M、N) のいずれかになります。
まず、文字「
K」を先頭に置きます。次に、最初の文字 '
K' を持つすべてのバリアントを取得するには、残りの
n-1 で可能な文字の組み合わせをすべて列挙する必要があります。コード > 位置、および .etc (写真を参照)
そこで、私たちは再帰的な解決策を思いつきました。ループ内で、考えられるすべての最初の文字を調べて (アルファベットの各文字を順番に最初に置きます)、それぞれのケースについて、考えられるすべての「尾部」を構築します。長さ n-1
。
文字の再帰的反復
残りの部分が空 (n = 0
) になった場合、再帰を停止し、完成した単語を出力する必要があります。すべての文字がすでに選択されています。
再帰的なプロシージャは次のようになります。
<プレ>
def TumbaWords(単語、アルファベット、n):
n <の場合1:
印刷(ワード)
戻る
アルファベットの c の場合:
TumbaWords(単語+c、アルファベット、n - 1)
プレ>