[编程笔记]-Chinese_Remainder_Theorem中国剩余定理

前言

刚打完cf,当前时间1:04。

链接就不放了,照着标签去找吧,总能找到的。

解决

方案一

互质

若m1, m2, m3, …, mk两两互质

满足如下条件:

x≡a1(mod m1)
x≡a2(mod m2)
x≡a3(mod m3)

x≡ak(mod mk)

设M=m1m2m3…mk

Mi=M/mi,就是除了mi外所有m的乘积。

因为所有m两两互质,所以Mi与mi互质。

所以,我们就可以求出Mi-1(mod mi),因为互质,所以存在。由于mi不一定是质数,这里使用拓展欧几里得算法

这里我们先给出x,然后再解释:
x=a1M1M1-1+a2M2M2-1+a3M3M3-1+…+akMkMk-1

为什么呢?根据乘法逆元的定义,可以得到:MiMi-1≡1(mod mi)

然后,除了第i项之外,其它项内都含有mi这个因数,模mi都为0。

所以最后模的结果就是ai%mi

满足条件。

不互质

M是所有mi的最小公倍数。

然后都一样。

方案二

代码

明天再补,我真不想变成国家一级保护废物。

两点睡,七点起,笑死根本睡不醒。

暂停数论更新,给自己放个假,去动态规划了~

完结撒花o( ̄︶ ̄)o


[编程笔记]-Chinese_Remainder_Theorem中国剩余定理
http://githarlem.github.io/2024/08/07/Chinese-Remainder-Theorem/
作者
Harlem
发布于
2024年8月7日
更新于
2024年8月7日
许可协议