Lucas定理
来源:互联网 发布:360度全景图制作 js 编辑:程序博客网 时间:2024/05/17 02:03
Lucas定理是用来求C(n,m)%p的值,其中n与m均为非负整数,p是素数。
先说说这个值应该怎么算。
设Lucas(n, m, p)为上式的值,则Lucas(n, m, p) = cn(n % p, m % p) * Lucas(n / p, m / p, p), Lucas(x, 0, p) = 1;
其中cm(n, m) = a! * (b! * (a - b)!) ^ (p - 2) % p = (a! / (a - b)!) * (b!) ^ (p - 2) % p
代码如下:
int cm(int n, int m){if(n < m)return 0;else if(m > n - m)m = n - m;int s1 = 1, s2 = 1;for(int i = 0; i < m; i++)s1 = s1 * (n - i) % p, s2 = s2 * (i + 1) % p;return s1 * qpow(s2, p - 2) % p; //qpow是快速幂}int lucas(int n, int m){if(m == 0)return 1;return cm(n % p, m % p) * lucas(n / p, m / p) % p;}
阅读全文
0 0
- Lucas 定理
- Lucas 定理
- lucas定理
- Lucas定理
- Lucas 定理
- Lucas 定理
- Lucas 定理
- Lucas 定理
- Lucas定理
- lucas定理
- lucas定理
- Lucas定理
- Lucas定理
- Lucas 定理。。。
- lucas定理
- Lucas定理
- lucas定理
- Lucas定理
- 观察者模式与事件监听机制
- MySQL——修改root密码的3种方法
- 一个无序自然数序列有N个自然数,快速找到二者之和为M的两个整数并输出
- MySQL高可用架构之MHA(可用)
- JAVA中hashCode的作用
- Lucas定理
- Maven工程常见问题
- JZOJ 8.14 B组总结
- 手把手教你用masscan做互联网资产端口探测
- HBASE
- maven打包springboot项目跳过test文件夹
- 良好编程习惯
- 【dp】 HDU
- 面试总结(二)