ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【数论总结】

2022-06-29 17:32:47  阅读:148  来源: 互联网

标签:总结 龟速 模数 数论 pmod iM 互质 equiv


一、中国剩余定理

问题

求解线性同余方程组:
\(\begin{cases} x\equiv a_1\pmod {m_1}\\x\equiv a_2\pmod{ m_2}\\ \dots\\x\equiv a_n\pmod {m_n} \end{cases}\)

  1. 弱化版(保证\(m_i\)两两互质)
    可以证明此时一定有解,且可以构造出一个解\(x_0\),那么通解显然为\(x\equiv x_0\pmod {\operatorname{lcm}\limits_{i=1}^nm_i}\)。
    在模数互质的情况下容易构造出\(x_0\),设\(M_i=\frac{\prod\limits_{i=1}^nm_i}{m_i}\),\(M_iM_i^{-1}\equiv 1\pmod {m_i}\),则\(x_0=\sum\limits_{i=1}^na_iM_iM_i^{-1}\)
    实现时,先把模数都乘起来,枚举1~n,求出每个\(M_i\)在\(m_i\)下的逆元(用exgcd),同时按照式子一边累加,一边对所有模数的乘积(在模数两两互质时,所有模数的乘积即为所有模数的lcm)取模即可。
    需要注意,所有模数的乘积可能很大,因此在求\(a_iM_iM_i^{-1}\)时可能要使用龟速乘。
    复杂度\(O(nlog w)\)(不论是否使用龟速乘)
  2. 拓展中国剩余定理(不保证\(m_i\)两两互质)
    因为模数不再保证互质,因此\(M_i\)和\(m_i\)不一定互质,就无法求得\(M_i\)的逆元,所以我们换一种思路:考虑合并两个形如\(x\equiv a_1\pmod {m_1}\),\(x\equiv a_2\pmod {m_2}\)的式子。
    那么有\(x=a_1+k_1m_1=a_2-k_2m_2\),即\(k_1m_1+k_2m_2=a_2-a_1\),若\(gcd(m_1,m_2)\not |(a_2-a_1)\),则方程一定无解,否则,可以用exgcd求出一组\((k_1,k_2)\),那么合并后的方程即为\(x=a_1+k_1m_1\pmod{lcm(m_1,m_2)}\)
    实现时,枚举2~n,同时维护一个\(a_1,m_1\),把当前枚举的\(a_i,m_i\)作为推到中的\(a_2,m_2\)即可。与弱化版相同需要注意是否需要使用龟速乘。复杂度同样为\(O(nlog w)\)(不论是否使用龟速乘)

二、BSGS算法

标签:总结,龟速,模数,数论,pmod,iM,互质,equiv
来源: https://www.cnblogs.com/glq-Blog/p/16424271.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有