zoukankan      html  css  js  c++  java
  • 基础数论

    剩余

    剩余类

    在模$m$的意义下,余数相同的归为一个集合,所有整数被分为$m$个集合。
    这些集合被称为模$m$剩余类。

    完系

    一个整数的集合,对$m$取模后,余数遍历了$0,1,2,…,m-1$。
    那么该整数集合是模$m$完全剩余系,如${-4,3,5,10}$,即为模$4$的完全剩余系。

    定理
    设$a,b,c,d$为整数,$m$为正整数,则:

    1.$a equiv b(mod m) ,且 d | m,则 a equiv b (mod d)$

    2.若$a equiv b(mod m) ,则 (a,m) = (b,m)$

    3.$a equiv b(mod m_i )(1 leq i leq n)同时成立,当且仅当 a equiv b (mod[m_1,m_2,...,m_n])$

    #扩展欧几里得算法

    令$d=(a,b)$,求$ax+by=d$的$x,y$

    $ax+by=d,bx_1+(amod b)y_1=d$

    $bx_1+(a-lfloorfrac{a}{b} floorcdot b)y_1=d$

    $bx_1+ay_1-lfloorfrac{a}{b} floor cdot by_1=d$

    $ay_1+b(x_1-lfloorfrac{a}{b} floor cdot y_1)=d$

    $x=y_1,y=x_1-lfloorfrac{a}{b} floor cdot y_1$

    当$gcd$进行到$b=0$时,显然有$x=1,y=0$

    线性同余方程

    N元一次不定方程(组)

    有$n$元一次不定方程$a_1x_1+a_2x_2+…+a_nx_n=c(a_1,a_2,…,a_n,cin N)$。

    该方程有解的充要条件是$(a_1,a_2,…,a_n)|c$。

    $(a_1,a_2)=d_2,(a_2,a_3)=d_3,…$

    $left{egin{array}\a_1x_1+a_2x_2=d_2t_2\d_2t_2+a_3x_3=d_3t_3\…\d_{n-1}t_{n-1}+a_nx_n=c end{array} ight.$

    解出最后一个迭代一下就好了。

    $m$个$n$元一次不定方程的方程组可以消元成$n-m+1$元的一次不定方程组。

    求一元线性同余方程

    $ax equiv b(mod m)$,令$d=(a,m)$

    若$d|b$,那么有$d$个模m不同的解(可以通过简单的证明得证)。

    否则无解。

    将式子转为$ax+my=d$,可以用扩展欧几里得算法求解。

    求一元线性同余方程组

    1.合并法:

    $x=b_1(mod m_1)$

    $x=b_2(mod m_2)$

    有解的充要条件是$(m_1,m_2)|(b_1-b_2)$,小于$m$的解只有一个。

    两个式子转为不定方程再联立可得$b_1-b_2=m_2y_2-m_1y_1$

    套用扩展欧几里得算法

    2.中国剩余定理:

    设$m_1,m_2,…,m_r$为两两互素的正整数

    $left{egin{array}\ xequiv a_1(mod m_1)\xequiv a_2(mod m_2)\…\xequiv a_r(mod m_r) end{array} ight.$

    有模$M=m_1m_2…m_r$的唯一解。

    令$M_i=Pi_{j eq i}m_j$,求出$p_i,q_i$使得$M_ip_i+m_iq_i=1$

    令$e_i=M_ip_i$,有:

    $e_i=$$left{egin{array}\ 0(mod m_i),j eq i \ 1(mod m_j),j=i end{array} ight.$

    所以$e_1a_1+e_2a_2+…+e_na_n$是方程的解,对$M$取模即为小于$M$的解。

    逆元

    扩展欧几里得算法

    $ax equiv 1(mod m)$,$x$被称为$a$在模$m$的意义下的逆元。

    显然有$ax+my=1$,套用扩展欧几里得算法即可。

    注意$x$是正整数,要取模的。

    费马小定理

    对于素数$p$,我们有$a^{p-1}equiv 1(mod p)$。

    显然有$a^{p-2}equiv a^{-1}(mod p)$,使用快速幂即可求解。

    若$(a,m)=1$,则有$x^{phi(m)}equiv 1(mod m)$。

    线性求逆元

    $p=kcdot i+r$可以得到$kcdot i+r equiv 0(mod p)$

    整理一下可以得到$i^{-1}equiv -k cdot r^{-1}(mod p)$

    所以有$i^{-1}equiv -lfloorfrac{p}{i} floorcdot (pmod i)^{-1}$

    递推即可。

    高次不定方程

    周期性

    对于$A^xequiv B(mod C)$这个方程。

    最大周期不超过$C$。

    Baby-step giant-step算法

    由周期性,我们可以求解$xleq C$时候的解。

    令$i=lfloorsqrt C floor$,那么有$x=pi+q$。

    整理可得$A^{pi}=A^{-q}B$,可以用$hash$表进行预处理匹配了。

    上面这个算法只有$(A,C)=1$的时候可以使用。

    令$d=(A,C)$。

    这时候我们可以将原方程变为$frac{A}{d}A^{x-1}equiv frac{B}{d}(mod frac{C}{d})$

    如果还不互素,那么重复上面那个操作即可。

    显然如果$d$不是$B$的因子,那么无解。

    原根

    阶的定义

    对于方程$a^requiv 1(mod n)$。

    当$(a,n)=1$时,最小的正整数r被称为$a$模$n$的阶,记为$Ord_n(a)$。

    阶的性质

    1.对于任意一个正整数$t$满足$a^tequiv 1(mod n)$,显然有$r|n$。

    2.$r|phi(n)$,由费马小定理得证。

    原根的定义

    若$a$模$m$的阶等于$phi(m)$,则称$a$为模$m$的一个原根。

    原根的解法

    从小到大暴力枚举正整数$g$。

    对于$m-1$的每一个质因子$a$,检查$g^{frac{m-1}{a}}equiv 1(mod m)$时候成立。

    成立则说明$g$不是原根。

    N次剩余

    方程$x^Nequiv a(mod p)$,本节只介绍$p$为素数的情况。

    令$g^y=x,g^t=a$,则有$g^{yN}equiv g^t(mod p)$

    由原根的性质我们可以直接得到$yNequiv t (mod p-1)$

    $t$的取值可以用$BSGS$算法解决,然后解方程即可。

  • 相关阅读:
    性能测试监控指标-数据库
    cpu 故障定位
    ubuntu安装boost
    固定IP下虚拟机网卡配置及ssh
    零基础天池新闻推荐初学-04-排序模型+模型融合的简单学习(TODO 待进一步完善)
    零基础天池新闻推荐初学-04-特征工程(制作特征列和标签列,转为监督学习)
    零基础天池新闻推荐初学-03-多路召回
    零基础天池新闻推荐初学-02-数据分析
    零基础天池新闻推荐初学-01-赛题理解&Baseline
    初学推荐系统-06- GBDT+LR模型
  • 原文地址:https://www.cnblogs.com/iamqzh233/p/9427715.html
Copyright © 2011-2022 走看看