-2

接頭辞が付いた2文字の順列を作成するにはどうすればよいですか?

このような:

NAMEaa NAMEab NAMEac NAMEad NAMEae NAMEaf.....。

4

4 に答える 4

2
for (char c1 = 'a'; c1 <= 'z'; c1++)
{
    for (char c2 = 'a'; c2 <= 'z'; c2++)
    {
        Console.WriteLine("NAME" + c1 + c2);
    }
}

ところで、それらは順列ではありません。

于 2012-12-06T21:34:08.940 に答える
1

LINQを使用すると、目的の結果を簡単に取得できます。

string prefix = "NAME";
string alphabet = "abcdefghijklmnopqrstuvwxyz";

IEnumerable<string> words = from x in alphabet
                            from y in alphabet
                            select prefix + x + y;
于 2012-12-06T21:32:54.850 に答える
0

すべてのアルファベットを含む配列を作成し、そのインデックスを2回ループします。

于 2012-12-06T21:30:48.753 に答える
0

それは順列ではなく、組み合わせです。

必要な文字を文字列に入れます。

string chars = "abcdefghijklmnopqrstuvwxyz";

可能な組み合わせの数は次のとおりです。

int combinations = chars.Length * chars.Length;

特定の組み合わせ(0から組み合わせ-1)を取得するには:

string str =
  "NAME" +
  chars.Substring(combination / chars.Length, 1) +
  chars.Substring(combination % chars.Length, 1);

すべての組み合わせを取得するには、それらをループするだけです。

string chars = "abcdefghijklmnopqrstuvwxyz";
int combinations = chars.Length * chars.Length;
List<string> result = new List<string>();
for (int i = 0; i < combinations; i++) {
  result.Add(
    "NAME" +
    chars.Substring(combination / chars.Length, 1) +
    chars.Substring(combination % chars.Length, 1);
  );
}
于 2012-12-06T21:33:21.783 に答える