数论之组合数取模
来源:互联网 发布:如何禁止用户安装软件 编辑:程序博客网 时间:2024/05/16 10:21
组合数取模:
三个链接表示的是该种方法的定理定义之类的~怕三种方法合在一起太长(ノ`Д)ノ
一、杨辉三角打表求组合数——1≤m≤n≤1000,1≤p≤
int Combination(int n) { int i,j; a[0][0]=1; for(i=0;i<=n;i++) { a[i][0]=a[i][i]=1; for(j=1;j<i;j++) { a[i][j]=(a[i-1][j-1]+a[i-1][j])%mod; } } return 0; }
二、乘法逆元来直接求组合数——n,m不大于10^5
其中三种求逆元方法及模板请戳蓝↑~
三、Lucas定理求组合数——n,m大于10^5,并且p是素数
Lucas定理处理比较大的数。
long long Pow(long long a,long long b) { long long ans=1; while(b) { if(b&1) { b--; ans=(ans*a)%p; } b>>=1; a=(a*a)%p; } return ans; } long long C(long long n,long long m) { if(n<m) return 0; long long a=1,b=1; while(m) { a=(a*n)%p; b=(b*m)%p; m--; n--; } return (a*Pow(b,p-2))%p; } long long Lucas(long long n,long long m) { if(m==0) return 1; return Lucas(n/p,m/p)*C(n%p,m%p)%p; }
ps:
组合数好像大部分都是高中的知识○| ̄|_
啊啊啊就不该让强迫症来写博客啊摔!
阅读全文
0 0
- 数论之组合数取模
- 组合数取模问题【数论】
- 【数论】组合数取模
- 组合数取模(数论)
- (组合数取模, 数论)2017"百度之星"程序设计大赛
- 【Lucas】【数论】 17.6.2 组合数取模 题解
- hdu 4483 Lattice triangle 数论之组合数
- 刘书(白书)之数论:组合和排列
- 【OI之路】02数论算法-3排列与组合
- POJ【数论/组合/博弈论】
- 【数论】组合数求模
- 【数论】计算组合数
- [数论] 组合数取模 中国剩余定理 Lucas定理
- HDU 5698 瞬间移动 [数论] [逆元] [组合数取模]
- HDU - 3037 Saving Beans (数论,组合数取模,lucas定理)
- HDU 3944 组合数学+数论
- NEFU 119 组合素数(数论)
- poj 3252 组合数学,数论
- 素数
- React初级入门环境搭建
- js判断undefined类型,undefined,null, 的区别详细解析
- hdu1257 (找最长不上升子序列的条数)
- get请求中传json参数报400的错误。
- 数论之组合数取模
- 网络概述
- 0.1.2基本数据类型讲解2
- 最短路 & 次短路
- Linux逻辑卷管理
- c|c++ 封装 c# 调用的动态库
- java中socket实现一对一聊天
- hdu5791 Two(dp求公共子序列个数)
- 解决Maven项目No compiler is provided in this environment. Perhaps you are running on a JRE