常州集训数论选记
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} 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的结果 \((n\leq2*10^5)\)
二项式定理
组合数学牛逼,慢慢补了。。