7.17随便听听数论
(实际上很有可能不会呜呜呜)
质数个数大概是 (frac{n}{logn}),即每 (log n) 个数就有一个质数。
线性筛+暴力好像就可以有一个高级复杂度了呢QaQ
正约数和
如果将一个数 (a) 用算术基本定理分解为 (a=p_{1}^{c_1}*p_{2}^{c_2}*.......*p_{n}^{c_n})
则正约数和为 $prod_{i=1}{m}sum_{j=1}{n} p_i^j $ 简单来说 ((1+p_1+p_1^2+.......p_1^{c_1})*(1+p_2.....+p_2^{c_2})*........)
为什么线性筛一定是被最小质因子筛掉:
假设一个合数 (x) ,反证法:如果被不是最小的质因子筛掉。
即当前的 i*prime[j]=x
且 i
中一定包含 (x) 的最小质因子。
那么在线性筛的过程中 (i) 一定会在 i%prime[t]==0
时退出,不会进行到 isprime[i*prime[j]]=true
这一步,prime[t]
为 (x) 的最小质因子。
所以线性筛一定是被最小质因子筛掉的。
如果 (p) 为质数,(phi(p^k)=p^k-p^{k-1}=p^{k-1}*(p-1))
线性筛欧拉函数的证明:
首先是 (phi) 本身的性质,当 (a) 与 (b) 互质的时候,(phi(ab)=phi(a)*phi(b))
其实线性筛中最重要的就是这句
phi[i*prime[j]]=i%prime[j]==0 ? phi[i]*prime[j] :phi[i]*(prime[j]-1);
首先 i%prime[j]!=0
所以 i
与 prime[j]
互质。
所以phi[i*prime[j]]=phi[i]*phi[prime[j]]
然后因为 phi[prime[j]]=prime[j]-1
所以当 i,prime[j]
互质的时候,可以直接 phi[i*prime[j]]=phi[i]*(prime[j]-1)
而当 i,prime[j]
并不互质的时候,phi[i*prime[j]]=phi[i]*prime[j]
先给出结论再证明。
首先一个结论:当 p
为质数的时候,(phi(p^k)=p^k-p^{k-1}=p^{k-1}*(p-1))
其实感性理解也很好理解,(p^k) 只有 (p) 这一个质因子。
那么 ([1,p^k-1]) 这个区间中与 (p^k) 不互质的数就只有 ([1*p,2*p.......(p-1)*p],[1*p^2,......(p-1)*p^2],[...],[....(p-1)*p^{k-1}]) 一共有(p^{k-1}) 个。提一个公因式就变成了 (p^{k-1}*(p-1))
(phi(p^k)=p^{k-1}*(p-1))
(phi(p^{k-1})=p^{k-2}*(p-1))
所以可以得到:(phi(p^k)=phi(p^{k-1})*p)
因为 i,prime[j]
不互质,不妨设 (prime[j]=p,i=T*p^{k-1})
那么 (i*prime[j]=T*p^k)
按照上面那种形式分解的话,(phi(i*p)=phi(T)*phi(p^k)) (因为 (T) 与 (p^k) 互质)
又因为 (phi(T)*phi(p^k)=phi(T)*phi(p^{k-1})*p)
因为 (phi(T)*phi(p^{k-1})=phi(T*p^{k-1})=phi(i))
所以 (phi(i*p)=phi(i)*p)
得证!
威尔逊定理
高斯吊打威尔逊!
充要条件:p
是质数,则有 (p-1 equiv (p-1)!) ($mod $ (p))
只有两个数的逆元是本身,一个是 (1) ,一个是 (p-1)
7.18认真听听组合数学
我是组合数学fw
鸽巢原理?~
定理:若有 (n) 个鸽巢,(n+1) 只鸽子,至少有一个鸽巢里至少有两只鸽子。
例:取数问题:
从(1,2,3,4,......2n) 中最多取 (n) 个数,使得取出的数两两不整除。
例:Halloween Treats
设 (a_1,a_2.....a_m) 是正整数序列,则至少存在整数 (k) 和 (l),使得 (a_{k+1}+....a_l) 能被 (m) 整除。
例:国际象棋大师
有 (11) 周,每天至少 (1) 盘,每周不超过 (12) 盘,存在连续若干天恰好下了 (21) 盘。
例:Erdos-Szekeres 定理
假设由 (n^2+1) 个不同实数构成的序列中,必定含有一个长度为 (n+1) 的单调子序列
假设 (m_i) 为以 (a_i) 为开头的最长单调上升子序列的长度。
那么至少有 (n+1) 个 (m_i) 相等。不妨设 (k_1<k_2<.....k_{n+1})
且 (m_{k_1}=m_{k_2}=m_{k_3}...=m_{k_{n+1}})
显然不存在 (a_{k_i}<a_{k_{i+1}}) 否则这俩的 (m_i) 就肯定不相等
于是这 (n+1) 个 (a_{k_i}) 形成一个单调递减序列。
排列组合
将 (n) 个无标号的物品分程若干组,求方案数对 (10^9+7) 取MOD的结果 ((nleq2*10^5))
二项式定理
组合数学牛逼,慢慢补了。。