模!

本文详细阐述了解决同余方程组的方法,并通过具体实例展示了其在计数类问题中的应用,包括利用中国剩余定理进行模意义下的幂运算等技巧。

同余方程组

如何解一个同余方程组:\[a_i x \equiv b_i (\mod m_i)\]

首先我们可以知道,解一定是这样的一个形式:\[x \equiv b(\mod m)\]

初始,我们可以令\(b=0, m=1\)表示所有整数。

现在的问题转化为求解这样两个方程:
\[x \equiv c (\mod m)\]
\[a x \equiv b(\mod m_i)\]

\(x=pm + c\),则有\(a p m + q m_i=b + ca\),如果\((a m, m_i) \nmid b + ca\)无解,否则用扩展欧几里德解出\(p,q\),进而得到\[x \equiv pm + c (\mod \frac {m_im} {(m_i, am)})\]

中国剩余定理

一些计数类题目的取模有可能不是质数,然后有一些神奇的性质用不了。

这时我们可以把模数\(m\)拆开为\[\prod {p_i}^k\],其中\(P_i\)是质数。根据中国剩余定理的神奇性质,我们可以对每个 \({P_i}^k\)当作取模数计算一次答案,然后合并出最后的答案。

也就是,我们要解同余方程组:\[x\equiv b_i(\mod m_i)\],这里所有\(m_i\)两两互素。

\(M = \prod m_i,M_i = {M \over m_i}\),那么\((m_i,M_i)=1\),所以,我们可以解\[M_ip_i+m_iq_i=1\],这时候,有个关键的事实:\[M_ip_i=1(\mod m_j) \iff j=i\],这样的话,答案就是:\[\sum b_iM_ip_i\]

模意义下的幂

一个神奇定理,证明传送门

\[a^b \equiv a ^{b \mod \phi(m) + \phi(m)} (\mod m),b>\phi(m)\]

做过的一些题目

POJ 1150 The Last Non-zero Digit

\(2,5\)的因子抽出来,然后使用分治的手段统计数字模\(10\)后等于\(3,7,9\)的各个数量。

POJ 1284 Primitive Roots

求原根数量,好像有这样一个公式?\[\phi(\phi(m))\]
现在水平有限,不会证 。

POJ 2115 C Looooops

裸的扩展欧几里德。

POJ Recurrent Function

裸的同余方程组。

POJ 2720 Last Digits

用了上面的神奇定理(模下的幂)就简单了。

转载于:https://www.cnblogs.com/wangck/p/4587614.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值