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

组合数计算方法(递推公式、乘法逆元)

1.乘法逆元求组合数

组合数的公式定义:C(n,m) = n! / (m!(n-m)!),从n个里边选m个

//首先预处理出所有阶乘取模的余数fact[N],以及所有阶乘取模的逆元infact[N]
//如果取模的数是质数,可以用费马小定理求逆元
int qmi(int a, int k, int p)    // 快速幂模板
{int res = 1;while (k){if (k & 1) res = (LL)res * a % p;a = (LL)a * a % p;k >>= 1;}return res;
}
// 预处理阶乘的余数和阶乘逆元的余数
int main(){fact[0] = infact[0] = 1;for (int i = 1; i < N; i ++ ){fact[i] = (LL)fact[i - 1] * i % mod;infact[i] = qmi(fact[i], mod - 2, mod) % mod;}int t;cin>>t;While(t--){int a,b,;cin>>a>>b;cout<<(ll)fact[a] * infact[b] % mod * infact[a-b]%mod;}
}

2. 递推公式求组合数

C(n,m) = C(n-1,m) + C(n-1,m-1)

// c[a][b] 表示从a个苹果中选b个的方案数
for (int i = 0; i < N; i ++ )for (int j = 0; j <= i; j ++ )if (!j) c[i][j] = 1;else c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;

相关文章:

  • MFC工控项目实例之二添加iPlotx控件
  • MySQL基础索引知识【索引创建删除 | MyISAM InnoDB引擎原理认识】
  • 【爱空间_登录安全分析报告】
  • ChatGPT AI专题资料合集【65GB】
  • 记 Codes 开源免费研发管理平台 —— 日报与工时融合集中式填报的创新实现
  • 安卓获取内部存储信息
  • 使用 Django ORM 进行数据库操作
  • 《逆水寒》手游周年庆,热度不减反增引发热议
  • Linux内核 -- 汇编 arm 处理器模式切换
  • spring中处理跨域的3种方案
  • 深入理解linux文件系统与日志分析
  • 智能化改造的关键点
  • 不是我愿意孤独,而是周围找不到同类
  • 大模型之路,从菜鸟到模型大师只需要一步
  • 初出茅庐的小李博客之使用立创开发板(ESP32)连接到EMQX Platform【MQTT TLS/SSL 端口连接】
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Electron入门介绍
  • ES6系统学习----从Apollo Client看解构赋值
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • fetch 从初识到应用
  • java取消线程实例
  • JS学习笔记——闭包
  • node-glob通配符
  • opencv python Meanshift 和 Camshift
  • Puppeteer:浏览器控制器
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Vue.js-Day01
  • 回顾 Swift 多平台移植进度 #2
  • 精彩代码 vue.js
  • 免费小说阅读小程序
  • 普通函数和构造函数的区别
  • 什么是Javascript函数节流?
  • 微信开放平台全网发布【失败】的几点排查方法
  • 06-01 点餐小程序前台界面搭建
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • #pragma预处理命令
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • $GOPATH/go.mod exists but should not goland
  • (52)只出现一次的数字III
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C)一些题4
  • (C语言)二分查找 超详细
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (vue)页面文件上传获取:action地址
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (计算机网络)物理层
  • (六)Hibernate的二级缓存
  • (十八)SpringBoot之发送QQ邮件
  • (算法)N皇后问题
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)基于IDEA的JAVA基础1
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .