【专题总结】数学(未完)

【专题总结】数学(未完)

前言

老年人的一些整理。。(复习用)

本文用\((x,y)\)表示\(gcd(x,y)\)

完全剩余系

1.从模 \(n\) 的每个剩余类中各取一个数,得到一个由 \(n\) 个数组成的集合,叫做模 \(n\) 的一个完全剩余系。完全剩余系常用于数论中存在性证明。
2.对于 \(n\) 个整数,其构成模n的完系等价于其关于模 \(n\) 两两不同余
3.若 \(a_i(1\leq i\leq n)\) 构成模 \(n\) 的完系,\(k,m\in Z\) , \((n,m)=1\) ,则 \(k+m\cdot a_i\) 也构成完系。【NOIP2017】小凯的疑惑
4.若 \(a_i(1\leq i\leq n)\) 构成模 \(n\) 的完系,则 \(\sum_{i=1}^{n}a_i\)

快速幂

code

LL qpow(LL x,LL y,LL P){
    LL re=1;
    while(y){
        if(y&1) re=re*x%P;
        x=x*x%P;y>>=1;
    }
    return re%P;
} 

素数定理

1.设 \(x>0\) ,以 \(\pi(x)\) 表示不超过 \(x\) 的素数个数,当 \(x \rightarrow +\infty\) 时,\(\pi(x) \rightarrow Li(x)\)\(\pi(x) \rightarrow \frac{x}{ln(x)}\)
2.各范围素数数量

威尔逊定理

  1. \((p-1)!\) \(\equiv\) \(p-1\) \((mod\) \(p)\) ( \(p\) 是质数)

线性筛

1.效率是 \(O(n)\) 的,并且每个合数只会被其最小的质因数筛到。

code

bool is_pri[N+10];
int pri[N],cntp=0;
void init_pri(){
    for(int i=2;i<=N;++i){
        if(!is_pri[i]) {
            pri[++cntp]=i;
        }
        for(int j=1;j<=cntp&&pri[j]*i<=N;++j){
            is_pri[pri[j]*i]=1;
            if(i%pri[j]==0) {
                break;
            }
        }
    }
}

乘法逆元

1.线性求逆元:令 \(p=k*i+r\) \((p是质数,k=\lfloor \frac{p}{i} \rfloor)\) ,显然 \(k*i+r\equiv0(mod\) \(p)\) , 移项得 \(i^{-1}\equiv(-k)\cdot r^{-1}(mod\) \(p)\)

code

LL inv[N+10];
void init_inv(){
    inv[0]=inv[1]=1;
    for(LL i=2;i<=N;++i) inv[i]=(P-P/i)*inv[P%i]%P;
} 

2.快速幂求逆元:由费马小定理 \(a^{p-1}\equiv1(mod\) \(p)\) ,得 \(a^{p-2}\equiv a^{-1}(mod\) \(p)\)
3.扩展欧几里得求逆元。(用于模数不是质数的时候。。在一些很绕的数论题会用到)

最大公约数

1.首先是欧几里得算法。。这是用来算最大公约数的算法QAQ
2.原理:\((a,b)=(b,a-k*b)\)
3.模板:

LL gcd(LL a,LL b){
    return b?gcd(b,a%b):a;
}

4.更相减损法。简单来说除去\(2^x\)的约数后,只通过减法和除2的方法来算,原理跟欧几里得一样。

#define ctz __builtin_ctz
int gcd(int a,int b){
    if(!a||!b)return a|b;
    int t=ctz(a|b);
    a>>=ctz(a);
    do{
        b>>=ctz(b);
        if(a>b)swap(a,b);
        b-=a;
    }while(b);
    return a<<t;
}

5.扩展欧几里得算法。
  在求最大公约数的同时可以解二元方程\(ax+by=(a,b)\)
  根据\((a,b)=(b,a-b\lfloor \frac{a}{b} \rfloor)\),于是存在\(bx'+(a-b\lfloor \frac{a}{b} \rfloor)y'=(a,b)\)
  两个式子联立即有\(a(x-y')+b(y-(x'-y'\lfloor \frac{a}{b} \rfloor))=0\)
  显然有特解\(x=y',y=x'-y'\lfloor \frac{a}{b} \rfloor\) ,递归处理即可

void exgcd(LL a,LL b,LL &d,LL &x,LL &y){
    if(!b){d=a;x=1;y=0;return;}
    exgcd(b,a%b,d,y,x);
    y-=(LL)(a/b)*x;
    return;
}

中国剩余定理和扩展

1.对若干个模线性方程求最小非负整数解。
2.每个方程形如\(x≡a_i (mod m_i)\)
3.中国剩余定理。
  当每个\(m_i\)互质时,令\(M_i=\displaystyle \frac{\prod{m_j}}{m_i}\)
  再令\(k_i\)满足\(k_iM_i≡1 (mod m_i)\)
  于是答案就是\(x≡\sum{a_ik_iM_i}(mod (\prod{m_j}))\)
  因为不保证\(m_i\)是质数,求\(k_i\)需要用扩欧来求逆元
4.扩展中国剩余定理。
  本质上我们就是要能合并两个模线性方程。。设为\(x≡a_0(mod m_0)\)\(x≡a_1(mod m_1)\)
  显然两个式子可以联立\(a_0+k_0m_0=a_1+k_1m_1\)
  移项\(k_1m_1-k_0m_0=a_0-a_1\)
  左边的式子很像二元一次方程的形式。。令\(Xm_1+Ym_0=(m_1,m_0)\),这个可以用exgcd来解。
  显然如果存在整数\(k_2\)使得\(a_0-a_1=k_2(m_1,m_0)\),则有解。
  令\(x=a_1+k_2Xm_1\),于是我们得到合并后的方程\(x=a_1+k_2Xm_1 (mod (lcm(m_0,m_1)))\)
  很多时候数据范围会到达1e18级别,这个时候乘法取模要用龟速乘或者O(1)的快速乘。

bool EXCRT(LL &m0,LL &a0,LL m1,LL a1){
    LL g,X,Y,Z,k;
    exgcd(m1,m0,g,X,Y);
    Z=a0-a1;
    if(Z%g==0){
        k=Z/g;
        m0=m0/g*m1;
        a0=((a1+mul(mul(m1,X,m0),k,m0))%m0+m0)%m0;
        return 1;
    }
    else return 0;
}

排列组合(部分公式)

1.\({n \choose m}\) \(=\) \(\frac {n!}{m!(n-m)!}\)

2.\({n \choose m}\) \(=\) \({n-1 \choose m-1}\) + \({n-1 \choose m}\)

3.\(\sum_{i=0}^{n}{n \choose i}\) \(=\) \(2^{n}\)

4.\(\sum_{i}{n \choose i}{m \choose k-i}\) \(=\) \({n+m \choose k}\)\(n\) 个中选 \(i\) 个,再在另外 \(m\) 个中选剩余 \(k-i\) 个,每种 \(i\) 的情况加起来,相当于是在 \(n+m\) 中选 \(k\) 个。

5.\(\sum_{i}{i \choose k}{n-i \choose m-k}\) \(=\) \({n+1 \choose m+1}\) 相当于在 \(n+1\) 个中取 \(m+1\) 个,然后对于每个 \(i\) 就对应着将选出的第 \(k+1\) 个点当做分割点后得到的方案。

6.\(\sum_{i=0}^{x-1}{k+i \choose i}\) \(=\) \({k+x \choose k+1}\) 国庆校考的时候用到的式子,当时是oeis出来的,不会证明,但还是记一下吧。

7.李善兰恒等式(感觉没什么用。。)

欧拉函数

1.介绍先略了吧

2.\(\phi(xy)\) \(=\) \(\frac{\phi(x) \phi(y) (x,y)}{\phi((x,y))}\)

概率与期望

1.这种题一般都是计数题QAQ

2.树上随机游走问题

  a.随机游走的情况下,一个点到其父亲期望步数。

    首先设\(d_i\)表示点\(i\)的度数,\(F_i\)为一个点到父亲期望步数。

    \(F_i\) \(=\) \(\frac{\displaystyle 1 + \sum_{j是i的儿子}{(F_j+F_i+1)}}{d_i}\)

    化简得:\(F_i\) \(=\) \(\displaystyle d_i + \sum_{j是i的儿子}{F_j}\)

    再进一步推导:\(F_i\) \(=\) \(2size_i-1\),size表示子树大小

  b.其他情况可以用类似方法推。。

一些比赛遇到的奇怪式子

1.\(y^{d(y)}\) \(=\) \(\prod_{t|y} y\) \(=\) \(\prod_{t|y} t \cdot \frac{y}{t}\) \(=\) \(\prod_{t|y} t^{2}\)

2.\(\sigma_{0}(xy)\) \(=\) \(\sum_{i|x}{\sum_{j|y}{[(i,j)=1]}}\) (\(\sigma_{k}\)表示约数的k次方和)

posted @ 2020-09-12 14:30  Iscream-2001  阅读(226)  评论(0编辑  收藏  举报
/* */