私はintとして入力を与えており、その入力に従って2つの文字の組み合わせが必要です。たとえば、2 として 入力を与えており、xとyの2つの文字があるので、次のような組み合わせが必要です。
xx,yy,xy,yx
入力が3の場合、
xxx,xyy,xxy,xyx,yxx,yyy,yxy.yyx
など、私は次のコードを試してみました、
int input1 = 4;
Double totalpossibilities = Math.Pow(2, input1);
string[] PArray = new string[Convert.ToInt16(totalpossibilities)];
char[] chars = new char[] { 'x', 'y'};
for (int i = 0; i < totalpossibilities; i++)
{
string possibility = "" ;
for (int j = 0; j < input1; j++)
{
Random random = new Random();
int r = random.Next(chars.Length);
char randomChar = chars[r];
possibility = possibility + randomChar;
}
if (PArray.Contains(possibility))
{
i--;
}
else
PArray[i] = possibility;
}
しかし、ご覧のとおり、ランダム関数を使用しているので、完了するのに時間がかかりすぎます。別のロジックはありますか?