我正在尝试创建一个程序,用于生成序列、字符串或数字的可能组合,这是某种加密/解密程序。我正在使用Visual Studio 2013和C#。我想做的是从一个序列中生成幂集,但我有点困惑,无法继续进行。以下是代码。
public static void randomSeq()
{
int temp = 0;
string seq = "1234";
var sb = new StringBuilder();
char[] bits = seq.Select((char c) => c).ToArray();
Console.Write("Given Sequence: ");
Console.Write(seq);
Console.WriteLine();
Console.WriteLine("Generated possiblities");
foreach (char item in bits)
Console.WriteLine(item);
do
{
if (temp <= 2)
{
for (int i = temp + 1; i < bits.Length; i++)
{
sb.Append(bits[temp]);
sb.Append(bits[i]);
Console.WriteLine(sb);
sb.Clear();
}
}
else if (temp > 2)
{
for (int k = 0; k < temp; k++)
sb.Append(bits[k]);
for (int l = temp + 1; l < bits.Length; l++)
{
sb.Append(bits[temp]);
sb.Append(bits[l]);
Console.WriteLine(sb);
sb.Clear();
}
}
temp++;
}
while (temp != bits.Length);
}
我希望这段代码能够通用,即我可以传递任何序列并为我生成一个幂集。然后我想在我的程序中进一步重复使用它。其他部分我可以简单地完成,但是我卡在了如何生成幂集。有人能帮我吗?