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\)定义
形如
的方程叫做线性同余方程。
\(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\)的求解
设
\(bx_{2}+(a\ mod\ b)=gcd(b,a\ mod\ b)\)

浙公网安备 33010602011771号