多くの関数を使用する代わりに、1つの関数を使用してこれを機能させるのに問題があります。
2^3のような繰り返しで順列を取得したい場合。 繰り返しのある順列
取得するため:
000
001
101
011
100
101
110
111
私はこの機能を持つことができます:
static void Main(string[] args)
{
three_permutations(2);
Console.ReadLine();
}
static void three_permutations(int y)
{
for (int aa = 0; aa < y; aa++)
{
for (int bb = 0; bb < y; bb++)
{
for (int cc = 0; cc < y; cc++)
{
Console.Write((aa));
Console.Write((bb));
Console.Write((cc));
Console.WriteLine();
}
}
}
}
しかし、4(2 ^ 4のように)を行うために、私が考えることができる唯一の方法はこれです:
static void four_permutations(int y)
{
for (int aa = 0; aa < y; aa++)
{
for (int bb = 0; bb < y; bb++)
{
for (int cc = 0; cc < y; cc++)
{
for (int dd = 0; dd < y; dd++)
{
Console.Write((aa));
Console.Write((bb));
Console.Write((cc));
Console.Write((dd));
Console.WriteLine();
}
}
}
}
}
しかし、再帰を使用するより良い方法があると確信しています。それを行う方法がわかりません。助けていただければ幸いです。ありがとう。