Lucas/exLucas 定理 学习笔记
0x00 前言
Lucas 定理适用于求在模质数
当然你可以用杨辉三角递推,但这是
0x01 方法
先上结论,当
0x02 原理
就是证明这个柿子。
引理:若
证明:因为
根据二项式定理,得到
令
对比系数就可以得到上式。
0x03 实现
可以通过递归的方式实现。
点击查看代码
int C(int n,int m,int p){
if(n<0||m<0||n-m<0)return 0;
return jc[n]*ij[m]%p*ij[n-m]%p;
}
int Lucas(int n,int m,int p){
if(n==0)return 1;
return Lucas(n/p,m/p,p)*C(n%p,m%p,p)%p;
}
时间复杂度
0x04 拓展
当
待补。https://oi.wiki/math/number-theory/lucas/
0x05 应用
P3807 【模板】卢卡斯定理/Lucas 定理
板。
P1313 [NOIP2011 提高组] 计算系数
二项式定理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)