首页 > 其他分享 >Some 困难的数论

Some 困难的数论

时间:2024-08-18 14:05:15浏览次数:11  
标签:dfrac gcd 数论 Some 困难 varphi pmod delta equiv

1.离散对数

就是在模 \(p\) 意义下求出 \(\log_ab\)。等价于求出方程 \(a^x \equiv b \pmod m\) 的解。其中的 \(x\) 就是 \(\log_ab\)。

当 \(a \perp p\) 时,BSGS 算法可以求解出上面那个方程的解。具体的计算过程如下:

我们设块长 \(M\),并且 \(x = AM - B\),那么 \(a^{AM} \equiv ba^{B} \pmod m\)。那么我们可以枚举所有可能的取值然后用一个哈希表或者 map 判断是否相等即可。时间复杂度为 \(O(\max(A,B))\)。我们知道 \(0 \le B < M,0 \le A \le \lceil \frac{p-1}{M} \rceil\),那么很明显当 \(M\) 取到 \(\lceil \sqrt p \rceil\) 时,复杂度最小,为 \(\mathrm O(\sqrt p)\)。

但是如果没有 \(a \perp p\),我们就需要使用 exBSGS 算法。

此时我们令 \(d = \gcd(a,p)\),然后方程两边同时除以 \(d\),那么方程变为 \(\dfrac{a}{d}a ^ {x - 1} \equiv \dfrac{b} {d}\pmod{\dfrac{p}{d}}\)。

此时我们注意到 \(\dfrac{a}{d} \perp \dfrac{p}{d}\),那么前面的数存在在后面的数的意义下的逆元,那么就有 \(a^{x-1} \equiv \dfrac{b}{d} \times (\dfrac{a}{d})^-1 \pmod{\dfrac{p}{d}}\)。如果 \(a\) 和 \(\dfrac{p}{\gcd(a,p)}\) 不互质,那么我们就重复上面的操作使得 \(\dfrac{p}{\gcd(a,p)}\) 和 \(a\) 互质后再用 BSGS 即可。

注意最后求出的解还需要加上操作次数。

2.阶

我们定义 \(\delta_p(a)\) 为最小满足同余方程 \(a^n \equiv 1\pmod p\) 的 \(n\),读作 \(a\) 模 \(m\) 的阶。

接下来是几个重要的性质。

\(\text{Lemma 1}\):\(a^1 \cdots \cdots a^{\delta_m(a)}\) 模 \(m\) 所得的余数互不相同。

\(\text{Proof 1}\):假若有两个数 \(i,j\) 满足 \(\delta_m(a)\) 使得 \(a^i \equiv a^j\pmod m\),那么必定有 \(a^{|i-j|}\equiv 1 \pmod m\)。这与阶的最小性矛盾,故原命题成立。

\(\text{Lemma 2}\):对于所有的 \(a^n \equiv 1 \pmod m\),必定有 \(n \mid \delta_m(a)\)。

\(\text{Proof 2}\):我们还是考虑反证法。我们设 \(n = \delta_m(a) \times q + r\),其中 \(0 < r < \delta_m(a)\)。那么 \(a^r \equiv a^r \times (a^{\delta_m(a)})^q \equiv a^n \equiv 1 \pmod m\),这与阶的最小性矛盾,那么原命题成立。

\(\text{Lemma 3}\):\(\delta_m(g^k) = \frac{\delta_m(g)}{\gcd(\delta_m(g),k)}\)。

\(\text{Proof 3}\):我们发现 \(g^{k\delta_m(g^k)} \equiv (g^k)^{\delta_m(g^k)} \equiv 1 \pmod m\)。那么就有 \(\delta_m(g) \mid k \times \delta_m(g^k)\),所以就有 \(\frac{\delta_m(g)}{\gcd(\delta_m(g),k)} \mid \delta_m(g^k)\)。同时我们知道 \((g^k)^{\frac{\delta_m(g^k)}{\gcd(\delta_m(g),k)}} \equiv (g^{\delta_m(g)})^{\frac{k}{\gcd(\delta_m(g),k)}}\),那么就有 \(\delta_m(g^k) \mid \frac{\delta_m(g)}{\gcd(\delta_m(g),k)}\)。那么原命题成立。

至于求法,我们可以世界使用 BSGS 来求出阶。

3.原根

注意是原根不是原神。

假如 \(\gcd(g,m) = 1\) 并且 \(\delta_m(g) = \varphi(m)\),那么我们称 \(g\) 为 \(m\) 的原根。

原根个数定理:假如 \(m\) 有原根,则 \(m\) 的原根个数为 \(\varphi(\varphi(m))\)。

若 \(m\) 有原根 \(g\),那么就有 \(\delta_m(g) = \frac{\delta_m{g}}{\gcd(\delta_m{g},k)} = \frac{\varphi(g)}{\gcd(\varphi(g),k)}\)。如果 \(\gcd(k,\varphi(m)) = 1\),那么 \(\delta_m{g^k}\) 也是 \(m\) 的原根。由于我们知道在 \(1\) 到 \(\varphi(m)\) 之间和 \(\varphi(m)\) 互质的数有 \(\varphi(\varphi(m))\) 个,那么原根的个数就是 \(\varphi(\varphi(m))\)。

标签:dfrac,gcd,数论,Some,困难,varphi,pmod,delta,equiv
From: https://www.cnblogs.com/Carousel/p/18365578

相关文章

  • 数论相关
    数论相关积性函数推论1:积性函数\(f\)一定满足\(f(1)=1\)。推论2:通过质数点值可以唯一确定完全积性函数,因为质数可以组成所有的数;通过所有\(p^k\)处的点值可以唯一确定积性函数,因为积性函数有前置条件\(n\botm\)所以要组合出有多个质因子\(p\)的数就需要\(p^k\)......
  • SOMEIP_ETS_042: echoUTF16DYNAMIC_length_too_short_for_String
    测试目的:验证设备(DUT)能否正确拒绝一个长度小于实际字符串长度的echoUTF16DYNAMIC字符串。描述本测试用例旨在检查当发送的SOME/IP消息中的echoUTF16DYNAMIC字符串长度小于实际字符串长度时,DUT是否能够返回格式错误(MALFORMED_MESSAGE)的错误消息。测试拓扑:具体步骤:TEST......
  • awesome-django,一个超酷的Python库
    awesome-django是一个开源的Django扩展库,汇集了众多实用的第三方Django插件和工具,旨在帮助开发者快速构建高质量、功能丰富的Django应用程序。通过awesome-django,开发者可以轻松集成常用的功能,提升开发效率。如何安装awesome-django首先,确保你已经安装了最新版本......
  • 这次轮到AntV增强Awesome-Graphs
    前不久,Awesome-Graphs刚Release完1.1.0版本后,我在《从论文到图谱,或许只差一个html》一文中,向大家详细展示了Awesome-Graphs的产品能力与交互形态。版本一经发布,作为蚂蚁数据可视化解决方案(AntV)一号位的志伟老哥,看到项目还在使用vis.js组件库,直接“按耐不住”地要给项目提供AntVG......
  • git报错 fatal: unsafe repository 解决方法 xxx is owned by someone else
    转载来自:https://www.aspirantzhang.com/network/git-fatal-unsafe-repository.htmlgit近期进行了版本升级,添加了新的目录安全限制。造成在进行git常规操作时,或在各类编辑器如VSCode中无法发现.git文件,报错:fatal:unsaferepository(xxxisownedbysomeoneelse.)Toaddan......
  • 一些困难题
    加训一下。1.[ARC181E]MinandMaxattheedge场上没人过的神题。(大概是搬运的官方题解)先考虑如何chk一个图是否存在好生成树。观察好生成树的限制,发现其对于非树边的限制是在生成树上连接两点的路径有关。而Kruskal的证明就是对于每条非树边,其边权大于所有其路径上的树......
  • 数论函数小记
    这篇文章是上了\(\rmyyc\)的课之后得到的一些心得和总结。高维点视角下的整除关系:我们可以将一个数\(x\)唯一分解为\(\prod_{i=1}^{+\infty}p_i^{x_i}\)的形式(其中\(p_i\)都是素数)。注意到每一种素数互不干扰,于是可以把每一种不同的素数看成立体空间的一维,把\(x\)......
  • SOMEIP_ETS_021:echoINT8
    测试目的:验证DUT在发送和接收INT8参数时,是否能够保持参数的值和顺序不变。描述本测试用例旨在检验DUT在处理包含INT8类型参数的SOME/IP消息时,是否能够正确地发送和接收这些参数,并且确保返回的方法响应消息中的INT8参数值与请求中的相同。测试拓扑:具体步骤:TESTER:创建S......
  • leetcode数论(1232. 缀点成线)-几何
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。描述给定一个数组 coor......
  • 数论总集
    卡特兰序列\(C_{k}(m,n)\)表示在网格中从\((0,0)\)走到\((m,n)\)时均不经过\(y=x+k\)的斜线即每时每刻满足\(y<x+k\)画图可得\(C_{k}(m,n)=\binom{n+m}{m}-\binom{n+m}{m+k}\)用法:任意前缀和不小于\(-x\)使用\(C_x\)(左括号是\(+1\))反射容斥学......