[编程笔记]-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/