组合数的奇偶判定

组合数的奇偶判定

在之前做过的题目里面,出现了很多关于杨辉三角的题目,很多时候都会联系到组合数的性质看。这里就来说明如何判断组合数的奇偶并证明。
我们知道组合数可以表示为 C n m = n ! m ! ( n − m ) ! C_n^m=\frac{n!}{m!(n-m)!} Cnm=m!(nm)!n!
现在假设 n ! , m ! , ( n − m ) ! 的 2 的 因 子 个 数 分 别 为 A , B , C n!,m!,(n-m)!的2的因子个数分别为A,B,C n!,m!,(nm)!2A,B,C
显然组合数为奇数当且仅当A=B+C。
那a和n!到底有什么关系呢?
其实,对于一个质数p,它在n!的因子个数是
⌊ n p ⌋ + ⌊ n p 2 ⌋ + ⌊ n p 3 ⌋ + ⌊ n p 4 ⌋ + . . . . . . \lfloor\frac{n}{p}\rfloor+\lfloor\frac{n}{p^2}\rfloor+\lfloor\frac{n}{p^3}\rfloor+\lfloor\frac{n}{p^4}\rfloor+...... pn+p2n+p3n+p4n+......
因此对于 n ! n! n!来说它2的因子个数(用 f ( n ) f(n) f(n)表示)就是
f ( n ) = ⌊ n 2 ⌋ + ⌊ n 2 2 ⌋ + ⌊ n 2 3 ⌋ + ⌊ n 2 4 ⌋ + . . . . . . f(n)=\lfloor\frac{n}{2}\rfloor+\lfloor\frac{n}{2^{2}}\rfloor+\lfloor\frac{n}{2^3}\rfloor+\lfloor\frac{n}{2^4}\rfloor+...... f(n)=2n+22n+23n+24n+......
然后对于n来说,它可以表示为 n = ( a 1 ∗ 2 0 ) + ( a 2 ∗ 2 1 ) + ( a 3 ∗ 2 2 ) + . . . . . . n=(a_1*2^0)+(a_2*2^1)+(a_3*2^2)+...... n=(a120)+(a221)+(a322)+......
知道这个之后我们可以把 f ( n ) f(n) f(n)的每一项再进一步化简(下面的 k k k为n的二进制位数)
f ( n ) = ∑ y = 1 k ⌊ ( a 1 ∗ 2 0 ) + ( a 2 ∗ 2 1 ) + . . . + ( a k ∗ 2 k − 1 ) 2 y ⌋ f(n)=\sum_{y=1}^k\lfloor\frac{(a_1*2^0)+(a_2*2^1)+...+(a_k*2^{k-1})}{2^y}\rfloor f(n)=y=1k2y(a120)+(a221)+...+(ak2k1)
= ∑ y = 1 k ( a y + 1 ∗ 2 y ) + . . . + ( a k ∗ 2 k − 1 ) 2 y =\sum_{y=1}^k\frac{(a_{y+1}*2^{y})+...+(a_k*2^{k-1})}{2^y} =y=1k2y(ay+12y)+...+(ak2k1)
= ∑ y = 1 k ∑ x = y + 1 k a x ∗ 2 x − 1 2 y =\sum_{y=1}^k\sum_{x=y+1}^k\frac{a_x*2^{x-1}}{2^y} =y=1kx=y+1k2yax2x1
= ∑ x = 1 k a x ∑ y = 0 x − 2 2 y =\sum_{x=1}^ka_x\sum_{y=0}^{x-2}{2^y} =x=1kaxy=0x22y
= ∑ x = 1 k a x ∗ ( 2 x − 1 − 1 ) =\sum_{x=1}^ka_x*(2^{x-1}-1) =x=1kax(2x11)
= ∑ x = 1 k a x ∗ 2 x − 1 − ∑ x = 1 k a x =\sum_{x=1}^k{a_x*2^{x-1}}-\sum_{x=1}^k{a_x} =x=1kax2x1x=1kax
= n − ∑ x = 1 k a x =n-\sum_{x=1}^k{a_x} =nx=1kax
化简之后我们在观察等式后面的求和发现
n 在 二 进 制 下 1 的 个 数 = ∑ x = 1 k a x n在二进制下1的个数=\sum_{x=1}^k{a_x} n1=x=1kax
因此 n ! n! n!在二进制下2因子的个数等于n减去其二进制下1的个数。
而组合数为奇数当且仅当A=B+C
而n,m,(n-m)在二进制下1的数目分别为a,b,c
所以
n − a = m − b + ( n − m ) − c n-a=m-b+(n-m)-c na=mb+(nm)c
a = b + c a=b+c a=b+c
而要这个条件满足显然当且仅当
n & m = = m n\&m==m n&m==m

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值