如何判断组合数的奇偶。。。
结论很简单。。。
对于C(n,k),若n&k==k则C(n,k)为奇数,否则就是偶数(PS: 记得加括号)
证法:就是。。。。
数学归纳法!!!!(没想到吧,反正我没想到)
先统计一下杨辉三角前几行会发现这个规律:
1 (n&k=k)√
1 2 (n&k!=k) √
................................................
那么对于以下 的C(n,k)来说就可以递推的证明:
我们只需要枚举4种情况即可:
①奇数 奇数;② 奇数 偶数; ③偶数 奇数; ④偶数 偶数
1)假设C(n-1,k)和C(n-1,k-1)均为奇数;
(n-1)&k==k;
(n-1)&(k-1)==k-1;
那么C(n,k)必为偶数;
∵(n-1)&k和&(k-1)的结果不同,所以n-1的末位必为1(二进制位)
现在假设n&k==k但由于(n-1)和n的末位不相同;
∴假设不成立
∴(n&k==k)不成立∴有上面的结论推出n&k!=k;
2)假设C(n-1,k)和C(n-1,k-1)均为偶数;
则(n-1)&k!=k;
(n-1)&(k-1)!=k-1;
假设n&k=k;
则对于k最后一位为1的情况:
此时n最后一位也为1,所以有(n-1)&(k-1) == k-1,与假设矛盾。
而对于k最后一位为0的情况:
则k的末尾必有一部分形如:10; 代表任意个0。
相应的,n对应的部分为: 1{*}*; *代表0或1。
而若n对应的{*}*中只要有一个为1,则(n-1)&k == k成立,所以n对应部分也应该是10。
则相应的,k-1和n-1的末尾部分均为01,所以(n-1)&(k-1) == k-1 成立,与假设矛盾。
得出当C(n,k)%2==0时,n&k!=k.