数论随笔(待补充)
只列举了做题中用到过的一些数学定理,先暂时整理一部分。
1、求n的位数:
log10(n)
2、n为质数:
a^m = a^(m % (n-1)) (mod n)
3、欧拉函数:
小于等于n的数中,与n互质的数的数目。
Euler函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),
其中p1,p2……pn为x的所有素因数,x是不为0的整数。
euler(1)=1(唯一和1互质的数就是1本身)。
补充性质:
(1)对于质数p,φ(p) = p - 1。注意φ(1)=1。
(2)对于互质的正整数a和n,有aφ(n) ≡ 1 mod n。(欧拉定理)
(3)若m,n互质,φ(mn)=φ(m)φ(n)。
(4)若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。
(5)当n为奇数时,φ(2n)=φ(n)
(6)设a为N的质因数,
若( a | (N/a) ) 则有φ(N) = φ(N / a) * a;
否则:φ(N) = φ(N / a) * (a - 1)。
(7)一个数的所有质因子之和是euler(n)*n/2。
4、卡特兰数
令h(0)=1,h(1)=1,catalan数满足:
h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
h(n)=h(n-1)*(4*n-2)/(n+1);
h(n)=C(2n,n)/(n+1) (n=0,1,2,...)
h(n)=c(2n,n)-c(2n,n-1)(n=0,1,2,...)
应用:括号化、出栈次序、凸多边形三角划分、给定节点组成二叉树
扩展:对于在n位的2进制中,有m个0,其余为1的catalan数为:C(n,m)-C(n,m-1)。