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

排列组合

排列组合

加法原理

完成某件事情有 \(n\) 类方法,其中第 \(i\) 类方法有 \(a_i\) 种方案。

则总共有 \(\sum_{i=1}^na_i\) 种方案。

乘法原理

完成某件事有 \(n\) 个步骤,第 \(i\) 个步骤有 \(a_i\) 种方案。

则共有 \(\prod_{i=1}^n a_i\) 种。

排列问题

定义:在一个集合中,有序地不重复地选取若干元素。

  • 排列数

给定一个 \(n\) 个元素的集合,从中有序地选出 \(m\) 个元素,方案为 \(n(n-1)(n-2)\cdots (n-m+1)=\frac{n!}{(n-m)!}\)

定义对于 \(n\ge m\)\(P(n,m)\) 表示从 \(n\) 个元素中,有序选出 \(m\) 个的方案数。

所以 \(P(n,m)=\frac{n!}{(n-m)!}\)

  • 组合数

对于一个有 \(n\) 个元素的集合,从中无序地选出 \(m\) 个,方案为 \(\frac{n!}{m!(n-m)!}\),用 \(C_n^m\) 表示。

显然有 \(C^n_m=C^{n-1}_m+C^{n-1}_{m-1}\),意思是最后一个数字(第 \(m\) 个)选和不选。

插板法

题目:将 \(n\) 个相同的物品,放入 \(m\) 个不同的盒子里,问方案数。

考虑将 \(n\) 个物品排成一排,\(m\) 个盒子就是用 \(m-1\) 个板子,将 \(n\) 个物品隔成 \(m\) 段,每段都当作放进一个盒子中。

方案数为 \(C_{n-1}^{m-1}\)

还可以转化成类似于 \(\sum_{i=1}^m x_i=n\) 的正整数解个数。

改版:将 \(n\) 个相同的物品,放入 \(m\) 个不同的盒子里,但是不要求每个盒子都要放,求方案数。

可以考虑让每个盒子里附带上一个借来的物品,这样既可以满足不需要新放入,又可以用公式做。

方案数:\(C_{n+m-1}^{m-1}\)

那么又可以转化成了满足 \(\sum_{i=1}^m x_i=n\) 的非负整数解个数。

还相当于满足 \(\sum_{i=1}^m y_i=n+m\) 的正整数解个数。

http://www.jsqmd.com/news/65727/

相关文章:

  • 2025 最新西双版纳旅游服务商TOP5推荐!地接社/旅行社五大优质品牌,资源实力 + 服务口碑权威榜单发布,专业赋能构筑美好旅行体验
  • 12.4 maven简介
  • vs2026远程调试linux
  • 深入理解 RocketMQ 核心机制
  • DMY 周作业 47 简要题解
  • 2025最新西双版纳旅行社TOP5推荐!资源整合+服务升级权威榜单发布,品质赋能重构雨林旅游体验
  • 豆包手机助手遭围剿,网友玩梗“微信OS”若成真,会长啥样?
  • 在Android中动态加载类
  • Flutter for HarmonyOS 创建指南(一):环境搭建与项目创建
  • 2025最新西双版纳地接社TOP5评测!品牌实力+服务口碑权威榜单发布,专业赋能品质旅行体验
  • 详细介绍:[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
  • Git预提交钩子实现代码美化自动化
  • 五、Java数组
  • 20231427田泽航第十二周预习报告
  • 122_尚硅谷_init函数
  • 《安全测试指南》——会话管理测试【学习笔记】
  • 氛围编程工具个人推荐
  • Windows 11全面AI化:语音助手与自主代理技术解析
  • 20251207
  • MyBatis自定义拦截器
  • 网线大鲨鱼
  • 深入解析:mysql内置函数——了解常用的函数
  • 【P1】win10安装 Docker教程 - 详解
  • csq-蓝桥杯python-基础语法1-逻辑运算与条件语句
  • 高级语言程序设计第八次个人作业
  • Cor1e的支票
  • 卷积神经网络是从多层感知机基础上发展起来的吗?
  • gaussdb json解析
  • 详细介绍:python logging模块:专业日志记录
  • JAX核心设计解析:函数式编程让代码更可控