一、在双规树结构图中,获取指定层的下标全排列
/// <summary>
/// 双规,生成指定层的所有Position下标
/// </summary>
/// <param name="layed">当前层数</param>
/// <returns></returns>
public static string[] GetDoublePosition(int layed)
{
//计算当前层总共多少个
int allCount = (int)Math.Pow(2, layed-1);
string[] result = new string[allCount];
//产生第一个位置
string first = "";
for (int i = 0; i < allCount; i++)
{
first += '0';
}
//将二进制,转换成十进制
int value = Convert.ToInt32(first, 2);
for (int i = 0; i < allCount; i++)
{
result[i] = Convert.ToString(value, 2).PadLeft(layed, '0');
value++;
}
return result;
}
实例:
Console.WriteLine(GetDoublePosition(1).ToJsonString());
Console.WriteLine(GetDoublePosition(2).ToJsonString());
Console.WriteLine(GetDoublePosition(3).ToJsonString());
Console.WriteLine(GetDoublePosition(4).ToJsonString());
关于进制转换: