首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

乘法逆元 线性递推阶乘逆元、费马小定理、普适线性逆元 欧拉定理结论

Definition 对于一个数 x 和一个模数 p,若存在一个数字 y,满足 image.png 则称 y 是 x 在 p 意义下的逆元,记做 image.png 。...一个数字逆元意义下的运算中可以完全取代该数字的倒数。例如 image.png ,其中 image.png代表 y的逆元。 代表 y的逆元。...单个数逆元有扩展欧几里得、费马小定理 复杂度logn 对于竞赛中,一般常用的是费马小定理,因为模数一般是质数 具体如下: 根据欧拉定理 image.png 其中 image.png 为欧拉函数,...至于证明,自行百度,会用就行~ 线性递推阶乘逆元结论: image.png 其中p为模数,inv[i]表示数i的逆元 对了,欧拉定理有个好用的结论,需要记下来: image.png 通过这个式子可以有效的简化模数...i个数,(p意义下) 这样o(n)我们就可以求出这些数的逆元了~ 附上两题模板题: P3811 【模板】乘法逆元 #include using namespace std

1K30

C语言符号-取余取运算

printf("%d\n", i); //结果是:-2 printf("%d\n", j); //结果是:2 return 0; } 注:运行结果并不是像我们想的四舍五入数学取整,在C语言中本质是向...0; } 对于负数取 示例: int main() { int a = -10; int d = 3; printf("%d\n", a/d); //C语言中是-3,...python是-4 printf("%d\n", a%d);//C语言中是-1,python是2 return 0; } 为什么就有差异了呢?...,向-∞方向取整 从而C中%,本质其实是取余;Python中%,本质其实是取 对任何一个大于0的数,对其进行0向取整和-∞取整,取整方向是一致的,故取等价于取余 对任何一个小于0的数...,对其进行0向取整和-∞取整,取整方向是相反的,故取不等价于取余 结论: 两个同符号数据参与取余,取等价于取余,不同语言余数相等 两个不符号数据参与取余,取不等价于取余,余数大小需考虑语言取整规则

3K40

组合数

试想一下(a / b)%p,如果你知道b%p的逆元c,那么就可以转变成(a/b)%p = (a/b) * 1 % p = (a / b) * (b* c % p) % p = a*c % p = (...那怎么逆元呢?这时候就要引入强大的费马小定理!...4 快速幂 这部分的内容可以参考 小朋友学算法(6):幂pow函数的四种实现方式 中的第四种方法 (二)逆元 + 快速幂组合思路 现在目标是C(n, m) %p,p为素数(经典p=1e9+7)。...虽然有C(n, m) = n! / [m! (n - m)!],但由于取的性质对于除法不适用,则有 ? 1.png 所以需要利用逆元把“除法”转换成“乘法”,才能借助取的性质计算组合数。...% p的逆元(即fac[m]的逆元):根据费马小定理,x%p的逆元为x^(p−2), 因此通过快速幂,求解fac[m]^(p−2) % p,记为M (3)(n-m)!

56520
领券