写在前面
文章作者实力有限,本文可能有个别错误,如有错误请友好地指出。
高次同余方程就是\(x^a\equiv b(mod\ p)\)
二次同余方程就是\(x^2 \equiv b(mod \ p)\)
我们接下来讨论解这两种方程的方法。
那么有一个问题。既然知道了高次同余方程的解法,就可以直接用解高次同余的方法解二次剩余方程。为什么要单独学二次同余方程呢。
因为我区间加区间修改用的是线段树不是树套树。即问题特殊化之后可以使用一些特殊的方法,这种方法可能会比一般方法高效,简便。
正文
高次同余方程
首先需要知道阶和原根
阶
定义
满足\(a^x\equiv 1(mod \ p)\)的最小的正整数x是a关于模p的阶,接下来\(a\)的阶表示为\(<a>\)。
条件
\(gcd(a,p)=1\),这是显然的。
性质
1:\(<a>\mid \varphi(p)\)。
证明:
因为\(a^{\varphi(p)}\equiv 1(mod\ p)\),\(a^{<a>}\equiv 1(mod\ p)\)
所以\(a^{\varphi(p)-<a>}\equiv 1(mod\ p)\)
进而得出\(a^{\varphi(p)\ mod \ <a>}\equiv 1(mod\ p)\)
假设\(<a>\)不是\(\varphi(p)\)的约数。
\(\varphi(p)\ mod<a>\neq 0\)
\((\varphi(p)\ mod<a>)\ < \ (<a>)\)与\(<a>\)的最小性矛盾,与假设矛盾原命题成立。
证毕。
2:设a关于模p的阶为\(<a>\)则\(a^0\),\(a^1\),\(a^2\),...,\(a^{<a>-1}\)两两不同。
证明:
假设\(a^x\equiv1(mod\ p)\),\(a^y\equiv 1(mod \ p)\),且\(a^x\equiv a^y(mod\ p)\),\(x<y<<a>\)
则\(a^{y-x}\equiv 1(mod \ p)\)。\(y-x<<a>\)与阶的最小性矛盾,假设不成立,原命题成立。
证毕。
3:设a关于模p的阶为\(<a>\),则\(a^x\equiv a^y(mod\ p)\)的充要条件是\(x\equiv y(mod\ <a>)\)。
两边一直除\(a^{<a>}\)因为\(a^{<a>}\equiv 1(mod\ p)\)所以结论显然。
原根
(因为原根的定义涉及到阶,所以默认互质,又因为原根的性质3,p为质数)