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

多重组合问题与矩阵配额问题

多重组合问题

  实际生活中,一定会遇到多重组合问题。多重组合就是把nnn个元素分配到大小为k1,k,⋯ ,kmk_1,k_,\cdots,k_mk1,k,,km的集合中。符号定义如下:
(nk1,k,⋯ ,km)=n!(∏i=1mki!)(n−∑i=1mki)! \binom n {k_1,k_,\cdots,k_m}=\frac{n!}{(\prod_{i=1}^mk_i!)(n-\sum_{i=1}^mk_i)!} (k1,k,,kmn)=(i=1mki!)(ni=1mki)!n!
符号用的还是组合的符号,上面代表总数$n),下面是拆分的数量。举个例子,把6个不同的小球,拿出5个,放到两个盒子里,第一个盒子放2个,第二个盒子放3,最后一个小球留着,其实相当于最后1个小球放入了第三个盒子。按公式计算就有60种情况:
(62,3)=6!2!3!(6−2−3)!=6!2!3!=60 \binom6{2,3}=\frac{6!}{2!3!(6-2-3)!}=\frac{6!}{2!3!}=60 (2,36)=2!3!(623)!6!=2!3!6!=60
那么为什么是这个公式呢?拆解一下,nnn中取k1k_1k1,那么就是:
(nk1)=n!k1!(n−k1)! \binom{n}{k_1}=\frac{n!}{k_1!(n-k_1)!} (k1n)=k1!(nk1)!n!
剩余n−k1n-k_1nk1中取k2k_2k2个则是:
(n−k1k2)=(n−k1)!k2!(n−k1−k2)! \binom{n-k_1}{k_2}=\frac{(n-k_1)!}{k_2!(n-k_1-k_2)!} (k2nk1)=k2!(nk1k2)!(nk1)!
于是,整个过程就是:
(nk1,k,⋯ ,km)=n!k1!(n−k1)!(n−k1)!k2!(n−k1−k2)!⋯(n−k1−k2−⋯−km−1)!km!(n−k1−k2−⋯−km)!=n!k1!k2!⋯km!(n−k1−k2−⋯−km)!=n!(∏i=1mki!)(n−∑i=1mki)! \binom n {k_1,k_,\cdots,k_m}\\ =\frac{n!}{k_1!\cancel{(n-k_1)!}}\frac{\cancel{(n-k_1)!}}{k_2!\cancel{(n-k_1-k_2)!}}\cdots\frac{\cancel{(n-k_1-k_2-\cdots-k_{m-1})!}}{k_m!(n-k_1-k_2-\cdots-k_{m})!}\\ =\frac{n!}{k_1!k_2!\cdots k_m!(n-k_1-k_2-\cdots-k_m)!}\\ =\frac{n!}{(\prod_{i=1}^mk_i!)(n-\sum_{i=1}^mk_i)!} (k1,k,,kmn)=k1!(nk1)!n!k2!(nk1k2)!(nk1)!km!(nk1k2km)!(nk1k2km1)!=k1!k2!km!(nk1k2km)!n!=(i=1mki!)(ni=1mki)!n!
公式里有个剩余项很烦,所以实际上假想出一个篮子,把最后的剩余项都放入这个篮子里。那么公式就可以简化为:
当∑i=1mki=n时,(nk1,k,⋯ ,km)=n!∏i=1mki! \text{当}\sum_{i=1}^mk_i=n\text{时},\binom n {k_1,k_,\cdots,k_m}=\frac{n!}{\prod_{i=1}^mk_i!} i=1mki=n,(k1,k,,kmn)=i=1mki!n!

矩阵配额问题

  上述问题是nnn个不同的小球,那么n个相同的小球,染成多种颜色呢,再放入m个盒子里呢?换句话说,mmm种颜色的小球,同颜色小球无差别,总数为xxx,数量分别为k1,k2,…,kmk_1,k_2,\dots,k_mk1,k2,,km,放入nnn个盒子里,每个盒子分别放l1,l2,⋯ ,lnl_1,l_2,\cdots,l_nl1,l2,,ln个小球,也就是∑imki=∑inli=x,\sum_i^mk_i=\sum_i^nl_i=x,imki=inli=x,有多少种放法?
太抽象就得用例子来说,6个小球,3个红色,3个黑色,放入3个盒子,A盒放1个,B盒放2个,C盒放3个。其中一种方法,我们得到一个矩阵:
Color/BoxABCR012B111 \begin{matrix} Color/Box &A &B&C\\ R &0 & 1&2\\ B&1&1 &1 \end{matrix} Color/BoxRBA01B11C21
列向量为每个盒子的分配法,行向量为每种颜色的分配情况,上面的例子是A盒放1个黑球,B盒放1黑1红,C盒放2红1黑。问题就变成了求配额矩阵的数量。这个问题就需要用生成函数法,或者动态规范法来解决了。

http://www.dtcms.com/a/609506.html

相关文章:

  • 什么情况下会把 SYN 包丢弃?
  • EG27324 带关断功能双路MOS驱动芯片技术解析
  • do_action wordpress 模板关键词优化排名的步骤
  • 海外网站入口通信管理局 网站备案
  • 在 Java 中实现 Excel 数字与文本转换
  • 如何保持不同平台的体验一致性
  • redis(五)——管道、主从复制
  • OBS直播教程:OBS实时字幕插件如何下载?OBS实时字幕插件如何安装?OBS实时字幕插件如何使用?OBS实时字幕插件官方下载地址
  • WPF中TemplatePart机制详解
  • 大学生毕业设计课题做网站网站开发研发设计
  • PPT制作正在发生一场静默革命
  • 无线通信信道的衰落特性
  • 大模型量化压缩实战:从FP16到INT4的生产级精度保持之路
  • ListDLLs Handle 学习笔记(8.11):谁注入了 DLL?谁占着文件不放?一篇教你全搞定
  • 电子电气架构 ---软件架构的准则与描述
  • linux下网站搭建wordpress文章页图片尺寸
  • 上海集团网站建设公司好蚌埠的网站建设
  • opencv 学习: QA_01 什么是图像锐化
  • C++标准库中的排序算法
  • 做网站图片和文字字体侵权seo是什么意思金融
  • Node.js npm 安装过程中 EBUSY 错误的分析与解决方案
  • 科普:华为星闪是什么?华为星闪(英文名 NearLink)是国际星闪无线短距通信联盟发布的新型无线短距通信标准技术。
  • 数据结构6:排序
  • 解决 npm 依赖版本冲突:从 “unable to resolve dependency tree“ 到依赖管理高手
  • Ubuntu 使用 Python 启动 HTTP 服务
  • day14(11.14)——leetcode面试经典150
  • PyTorch实战(10)——从零开始实现GPT模型
  • 东莞商城网站建设哪里比较好电脑手机网站建设
  • django测试缓存命令的解读
  • Databend SQL 存储过程使用指南