1.互素:两个数的最大公因数是1,则两数互素,0不在考虑范围内,1与任何数互素,(不包括0);
2.质因数:每个合数都可以写成几个质数相乘的形式,这几个质数就都叫做这个合数的质因数
3.欧拉函数:
注,从网上搜了很多,发现都是很麻烦的.自己从书上的证明copy下来..感觉这样证明会很简单.与大家分享一下..
建议先看一下容斥定理,比较简单的一个定理.
概念:不超过N的正整数中,与N互质的数的个数。记为F(n);
公式:F(n) = n*(1-1/p1)*(1-1/p2)```(1-1/pm),其中Pi表示n的质因数,比如12=2^2*3那么p1=2,p2=3;
证明如下:(根据容斥原理)
设Ai={x/x<=n&&x|pi};即用Ai表示一个在n范围内的可以整除n的某个质因数的集合.
则F(n) = n-| (A1||A2||A3||````Am) |即为不超过n的总个数n减去与其不互质的个数.
根据容斥定理:| (A1||A2||A3||```Am) | = sum(Ai)-sum(Ai&&Aj)+````(-1)^x*(sum(Ai&Aj&Ak```)
而|Ai|=[n/pi]=n/pi(因为能够整除),|Ai&&Aj| = n/(pi*pj),以此类推.
那么F(n) = n-sum(Ai)+sum(Ai&&Aj)``````= n - sum(n/pi)+sum(n/(pi*pj))````=n*(1-1/p1)*(1-1/p2)````
最后这一个等号证明还没弄懂,自己化了下.是这样的结构(1-a)*(1-b)*(1-c) = 1-a-b-c+ab+ac+bc-abc;刚好是容斥定理的形式..
------------
4.catalen数:
给定一串2n个数的数列,其中含有n个1和n个-1,那么对于任意子序列Sk来说,满足Sk>=0,则这个数列满足catalen数.
公式An = C(2n n)/(n+1);
证明:首先易知符合规则的和不符合规则的数列的总数和应该是从2n个数中选n个作为1的组合.即C(2n n),对于不合规则的数列来说的话,必然存在一个最小的子序列满足前2K项和为0,同时2K+1项为-1.将前2K+1项全部取反.后面不变,则可以变成一个含有n+1个1和n-1个-1的数列..对于每个不合格的数列都可以变成这样的一个含有n+1个1和n-1个-1的数列.所以不合格的数列的数目应该是C(2n n+1)..这样结果An就是C(2n n) - C(2n n+1);