组合数的奇偶断定

组合数的奇偶断定

在以前作过的题目里面,出现了不少关于杨辉三角的题目,不少时候都会联系到组合数的性质看。这里就来讲明如何判断组合数的奇偶并证实。
咱们知道组合数能够表示为\[C_n^m=\frac{n!}{m!(n-m)!}\]
如今假设\(n!,m!,(n-m)!的2的因子个数分别为A,B,C\)
显然组合数为奇数当且仅当A=B+C。
那a和n!到底有什么关系呢?
其实,对于一个质数p,它在n!的因子个数是
\[\lfloor\frac{n}{p}\rfloor+\lfloor\frac{n}{p^2}\rfloor+\lfloor\frac{n}{p^3}\rfloor+\lfloor\frac{n}{p^4}\rfloor+......\]
所以对于\(n!\)来讲它2的因子个数(用\(f(n)\)表示)就是
\[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+......\]
而后对于n来讲,它能够表示为\[n=(a_1*2^0)+(a_2*2^1)+(a_3*2^2)+......\]
知道这个以后咱们能够把\(f(n)\)的每一项再进一步化简(下面的\(k\)为n的二进制位数)
\[f(n)=\sum_{y=1}^k\lfloor\frac{(a_1*2^0)+(a_2*2^1)+...+(a_k*2^{k-1})}{2^y}\rfloor\]
\[=\sum_{y=1}^k\frac{(a_{y+1}*2^{y})+...+(a_k*2^{k-1})}{2^y}\]
\[=\sum_{y=1}^k\sum_{x=y+1}^k\frac{a_x*2^{x-1}}{2^y}\]
\[=\sum_{x=1}^ka_x\sum_{y=0}^{x-2}{2^y}\]
\[=\sum_{x=1}^ka_x*(2^{x-1}-1)\]
\[=\sum_{x=1}^k{a_x*2^{x-1}}-\sum_{x=1}^k{a_x}\]
\[=n-\sum_{x=1}^k{a_x}\]
化简以后咱们在观察等式后面的求和发现
\[n在二进制下1的个数=\sum_{x=1}^k{a_x}\]
所以\(n!\)在二进制下2因子的个数等于n减去其二进制下1的个数。
而组合数为奇数当且仅当A=B+C
而n,m,(n-m)在二进制下1的数目分别为a,b,c
因此
\[n-a=m-b+(n-m)-c\]
\[a=b+c\]
而要这个条件知足显然当且仅当
\[n\&m==m\]spa

相关文章
相关标签/搜索