RE0:从取模开始的OIer生活

\(Part\ 1\)取模

取模做为数论中的基础运算,一些基础的性质十分的重要。

\(Part\ 1.1\)\(\%\)的定义

\(m=qn+r(0\le r<q)\),则记\(m\equiv r(mod\ q)\),在\(C++\)中写作\(m\% q=r\)
举例:
\(1\%3=1\)
\(5\%3=2\)
对负数取模也是一样的。
\(C++\)中的负数取模的结果。
\(C++\)中,模的符号与被除数相同。
\(-5\%3=-1\)
\(5\%-3=1\)
\(-5\%-3=-1\)

\(Part\ 1.2\%\)的性质

\(a(mod\ p)+b(mod\ p)\equiv a+b(mod\ p)\)
\(a(mod\ p)-b(mod\ p)\equiv a-b(mod\ p)\)
\(a(mod\ p)b(mod\ p)\equiv ab(mod\ p)\)
但除法不满足性质。

\(Part\ 2\)线性同余方程

\(Part\ 2.1\)定义

形如

\(ax\equiv b(mod\ p)\)

的方程叫做线性同余方程。

\(Part\ 2.2\)求解

可以发现\(ax\equiv b(mod\ p)\Leftrightarrow ax+py=b\)
所以问题转换为求\(ax+py=b\)的一组解
这个方程有解的充要条件是\(gcd(a,p)\mid b\)
证明见翡蜀定理与算数基本定理的证明

\(Lemma\ 1\ ax+py=b\)的求解

\(ax_{1}+by_{2}=gcd(a,b)\)
\(bx_{2}+(a\ mod\ b)=gcd(b,a\ mod\ b)\)

由欧几里得定理得两式相等。 则有
$ax_{1}+by_{2}=bx_{2}+(a\ mod\ b)y_{2}$ $ax_{1}+by_{2}=bx_{2}+(a\ mod\ b)y_{2}$
posted @ 2023-05-14 11:39  |Roland|  阅读(162)  评论(0)    收藏  举报