组合数的奇偶判定
在之前做过的题目里面,出现了很多关于杨辉三角的题目,很多时候都会联系到组合数的性质看。这里就来说明如何判断组合数的奇偶并证明。
我们知道组合数可以表示为
C
n
m
=
n
!
m
!
(
n
−
m
)
!
C_n^m=\frac{n!}{m!(n-m)!}
Cnm=m!(n−m)!n!
现在假设
n
!
,
m
!
,
(
n
−
m
)
!
的
2
的
因
子
个
数
分
别
为
A
,
B
,
C
n!,m!,(n-m)!的2的因子个数分别为A,B,C
n!,m!,(n−m)!的2的因子个数分别为A,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=(a1∗20)+(a2∗21)+(a3∗22)+......
知道这个之后我们可以把
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=1∑k⌊2y(a1∗20)+(a2∗21)+...+(ak∗2k−1)⌋
=
∑
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=1∑k2y(ay+1∗2y)+...+(ak∗2k−1)
=
∑
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=1∑kx=y+1∑k2yax∗2x−1
=
∑
x
=
1
k
a
x
∑
y
=
0
x
−
2
2
y
=\sum_{x=1}^ka_x\sum_{y=0}^{x-2}{2^y}
=x=1∑kaxy=0∑x−22y
=
∑
x
=
1
k
a
x
∗
(
2
x
−
1
−
1
)
=\sum_{x=1}^ka_x*(2^{x-1}-1)
=x=1∑kax∗(2x−1−1)
=
∑
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=1∑kax∗2x−1−x=1∑kax
=
n
−
∑
x
=
1
k
a
x
=n-\sum_{x=1}^k{a_x}
=n−x=1∑kax
化简之后我们在观察等式后面的求和发现
n
在
二
进
制
下
1
的
个
数
=
∑
x
=
1
k
a
x
n在二进制下1的个数=\sum_{x=1}^k{a_x}
n在二进制下1的个数=x=1∑kax
因此
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
n−a=m−b+(n−m)−c
a
=
b
+
c
a=b+c
a=b+c
而要这个条件满足显然当且仅当
n
&
m
=
=
m
n\&m==m
n&m==m