模意义下的除法变乘法

自作多情 提交于 2019-11-30 03:01:51

前言

大家都知道,四则运算中只有除法不支持模运算。

因此,如果在需要取模(特别是统计方案之类的题目),带除法的公式会十分难处理。

本文介绍一种在模意义将除法换成乘法的方法。

前置知识:欧拉定理

$a^{\varphi (b) } \equiv 1 (mod \space b)$

$\varphi$表示欧拉函数

欧拉函数以及证明请自行百度

使用方法

现假设你要计算$a \divide b \space(mod \space c)$ 

可将其变形为$a *{1 \over b} \space(mod \space c)

因为$b^{\varphi (c) } \equiv 1 (mod \space c)$

所以$b^{(\varphi (c)-1) } \equiv 1 \over b (mod \space c)$

代回$a *{1 \over b} \space(mod \space c)$

得$a*b^{(\varphi (c)-1) } (mod \space c)$

解决!

关于欧拉函数的计算,如果c为素数,则原式直接等于$a*b^{(c-1) } (mod \space c)$ (欧拉函数的定义)

否则可以$(O(n))$求出

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!