N和素数P,求杨辉三角第N行中能被P整除的数的个数

结论是将N写成P进制数N0N1N2....Nm,答案就是(N+1) - (N0+1)*(N1+1)*...(Nm+1)。

证明是一个牛人写的:

组合数C(n,m)=n!/(m!(n-m)!)不被被素数P整除的充要条件是n!含有因子P的个数等于m!和(n-m)!含有因子P的个数之和。(//我就想到这一步...)
对任意正整数n,n!含有的素数因子P的个数为n/p+n/p^2+n/p^3......(//这个很关键)那么当且仅当满足

n/p+n/p^2+....=m/p+m/p^2+... + (n-m)/p+(n-m)/p^2+.... (1) 时C(n,m)才不被P整除。

(1)等价于对任意i都有n/p^i=m/p^i+(n-m)/p^i (2)

(2)又等价于 m%(p^i)<=n%(p^i) (3)对任意正整数i都成立。(//从2到3这个一步相当的重要,是本题的一个关键点,巧妙)
  
将n和m分别写成P进制数 n0,n1,n2,n3,n4,.... m0,m1,m2,m3,m4,....

容易得到(3)成立的充要条件就是 m0<=n0, m1<=n1 ....

所以m的可取值个数就是(n0+1)*(n1+1)*(n2+1)......

posted on 2007-09-19 21:49  xmx  阅读(640)  评论(0)    收藏  举报

导航