把M位的2^M种不同的0-1串按圆排列划分(2)之再思考

上一篇忘了讲到:从M位中取出n位的分布规律符合杨辉三角数的分布规律。即:

拿M=6举例:

杨辉三角数为:1,6,15,20,15,6,1

对应的0个1的6位数有一个数,1个1的6位数有6个数,2个1的6位数有15个。。。。

下面分别对不同个数的1分类考虑。

显然:0个1的6位数有一个数,只能包含一个循环;1个1的6位数有6个数,也只包含一个循环。

那么2个1的6位数有15个数,包含几个循环呢,答案是3个。为什么呢?

因为原则上每个循环都包含M个数,但是由于对称,有的少于M个数。很显然,每个杨辉三角数只包含一个对称。如2个1的6位数有15个数,包含的对称是100100.

由此可以得出,n个1的M位数包含的循环个数是这个杨辉三角数除以M的最小上界。如2个1的6位数有15个数,15除以6的最小上界是3.

由这个规律就可以得到M位数总共包含多少个循环。

接下来的工作就是对循环的解析了!

点赞