次のすべての可能な文字列を含むファイルを生成するプログラムを C で作成したいと考えています。
2 つの数字 (0 から 9) と 6 つの文字 (a から z)
どうすればできますか?
組み合わせがいくつあるかわかりません
手伝ってくれますか?どうもありがとう
次のすべての可能な文字列を含むファイルを生成するプログラムを C で作成したいと考えています。
2 つの数字 (0 から 9) と 6 つの文字 (a から z)
どうすればできますか?
組み合わせがいくつあるかわかりません
手伝ってくれますか?どうもありがとう
必要な出力を連続した一連の数値にマップするアルゴリズムを考案します。
そのアルゴリズムをコードに実装します。
シリーズの各数値に対してそのアルゴリズムを呼び出します。
最初の数については、10 の可能性があります。これらの 10 の可能性のそれぞれについて、2 番目の数字には 10 の可能性があり、最初の 2 つの数字には合計 100 の可能性があります。これらの 100 の可能性のそれぞれについて、最初の文字には 26 の可能性があり、最初の 3 つの数字には合計 2,600 の可能性があります。等々。
別の方法を次に示します。
最初の値、最後の値があり、すべての値が他の値よりも大きいか小さいという厳密な順序で、可能なすべての正当な値を配置するアルゴリズムを考案します。
ステップ 1 のアルゴリズムに従って「次の」値を生成する方法をコードに実装します。
最初の正当な値に移動します。
値を出力します。
これが最後の正当な出力である場合は、停止します。
ステップ 2 のコードを使用して、次の値に進みます。手順 4 に進みます。
使用できる順序、アルファベット順は明らかです。最初の出力は「00aaaaaa」です。最後は「99zzzzzz」。
組み合わせの数について:
範囲 [0, 9] の 2 桁、10 2の可能性。
26 6通りの範囲 [a, z] の 6 桁。
2 つの数字を合計 8 桁に配置する 8-choose-2 の方法。(それは28です。)
今、すべてを掛けます。