zoukankan      html  css  js  c++  java
  • [学习笔记]数论(一)

    扩展欧几里得

    求二元一次不定方程ax+by=gcd(a,b)的一组解。

    b=0时,有一组解 x=1,y=0

    b>0时,因为 gcd(a,b)=gcd(b,a;mod;b)

    所以设x',y'满足bx'+(a;mod;b)y'=gcd(a,b),

    bx'+(a-a/b$	imes$b)y'=gcd(a,b),

    整理得 ay'+b(x'-a/b$	imes$y')=gcd(a,b)

    所以x=y',y=x'-a/b$	imes$y'

    就可以在求gcd的过程中得到一组解。

    inline int exgcd(int a,int b,int &x,int &y){
        if(!b){
            x=1;y=0;return a;
        }
        else{
            int ret=exgcd(b,a%b,y,x);
            y-=a/b*x;return ret;
        }
    }

    欧拉函数

    欧拉函数$phi(x)的定义:小于等于x的正整数中与x互质的数的个数。

    x=1时,$phi(x)=1

    x>1时,x可以写成k个素数的幂的积的形式,第i个素数的质数为a_{i}:

    x=prod_{i=1}^{k}p_{i}^{a_{i}}

    根据容斥原理得,phi(x)=x+sum_{Ssubseteq{p_{1},p_{2},dots,p_{k}}}(-1)^{|S|}	imes(frac{x}{prod_{p_{i}in;S}p_{i}})

    简单地推一下后发现,phi(x)=x	imesprod_{i=1}^{k}(frac{p_{i}-1}{p_{i}})

    BSGS

    求最小的x使得a^{x}$equiv$b(mod;p),p为质数。

    s=sqrt{p},则x=y$	imes$s+r;(0;leq;r<s),即a^{x}=a^{y;	imes;s}$	imes$a^{r}

    将所有的a^{r}map
存起来,从小到大枚举y,直到b/a^{y;	imes;s}是某个a^{r}

    此时答案为y$	imes$s+r

    ps:由费马小定理可得,k^{p-1}$equiv$1(mod;p),所以 k^{p-2}$equiv$1/k(mod;p),

       所以可以用快速幂实现除法(gcd(k,p)
ot=1时会有bug)。

    typedef long long ll; 
    map<ll,ll> m;
    inline ll po(ll x,ll k,ll p){
        ll ret=1;
        while(k){
            if(k&1) ret=ret*x%p;
            x=x*x%p;k>>=1;
        }
        return ret;
    }
    inline ll bsgs(ll a,ll b,ll p){ 
    if(gcd(a,p)!=1) 
            if(b) return -1;
            else return 1;
        ll s=sqrt(p),k=1,x=1,y;
        while(s*s<=p) ++s;
        for(ll i=0;i<s;++i){
            if(!m[k]) m[k]=i;
            k=k*a%p;
        }
        for(ll i=0;i<s;++i){
            y=b*po(x,p-2,p)%p;
            if(m.count(y))
                return i*s+m[y];
            x=x*k%p;
        }
        return -1;
    }
  • 相关阅读:
    洛谷 P1024 一元三次方程求解
    洛谷 P1025 数的划分
    假期一测
    洛谷 P1032 字符变换
    洛谷 P1033 自由落体
    洛谷 P1063 能量项链
    洛谷 P1072 Hankson 的趣味题
    洛谷 P1040 加分二叉树
    1013: [JSOI2008]球形空间产生器sphere
    1013: [JSOI2008]球形空间产生器sphere
  • 原文地址:https://www.cnblogs.com/AireenYe/p/5820154.html
Copyright © 2011-2022 走看看