当前位置: 首页 > news >正文

除法取模需使用费马小定理或者欧拉函数

平常在做组合数相关题型时容易遇到取模的情况,这时候就需要注意到除法取模的注意了。
除法取模不能直接进行除(不清楚怎么说明),需要转化为关于mod的乘积的逆元之后再进行乘法替换除法


也就是比如MOD,除数为b
b * b-1 =(同余) 1 mod MOD
我们就需要乘以那个b-1,怎么求可以用费马小定理证明b-1 = bMOD-2


证明:据费马小定理有a, m, 如果gcd(a, m) = 1, 那么 aMOD-1 =(同余) 1 mod MOD
两边同时乘以a-1得,aMOD-2 =(同余) a-1 mod MOD.


所以最后求除法取模等用于乘以bMOD-2 mod MOD,然后使用快速幂解决
`
int modpower(int a, int b, int mod) {
int res = 1;
a %= mod;
while (b > 0) {
if (b & 1) res = res * a % mod;
a = a * a % mod;
b >>= 1;
}
return res;
}

// 求 n-i 的逆元
int inv = modpower(n - i, mod - 2, mod);
`

http://www.njgz.com.cn/news/180.html

相关文章:

  • LLaMA Factory:一站式大模型微调框架的技术介绍
  • 2025727
  • 读《大道至简》有感
  • Datawhale AI夏令营-DeepSeek数学推理蒸馏:轻量化模型的高效推理优化
  • Windows操作QEMU安装ARM架构的操作系统
  • 34th@202508工作清单@20250726
  • 用 Go 与 Tesseract 构建验证码识别 HTTP 服务
  • CS144 Lab2: TCPReceiver实现全解析
  • windows操作QEMU安装ARM架构操作系统
  • 使用 Go 构建基于 Tesseract 的命令行验证码识别工具
  • SpringCloud微服务架构-Gateway服务网关
  • 暑期生活学习笔记
  • 好的调试
  • 20250726 之所思 - 人生如梦
  • Day15 面向对象编程
  • if语句
  • 使用 Go 调用 Tesseract 实现验证码图片文字提取
  • 最长有效括号子串问题
  • 数组练习试题2
  • 7.26 训练总结
  • AirSim基础使用【Python】
  • 7.25
  • SQLAlchemy
  • GPT-SoVITS初探
  • 6. 容器类型
  • 在Ubuntu系统中搭建Unreal4和AirSim环境
  • 深度解析苹果端侧与云端基础模型技术架构
  • 关于properties文件遇到的坑
  • 当日总结
  • 上传到https域名服务器遇到的问题