• 前两篇文章学习了不可重复选取的排列与可重复选取的可重排列。本篇文章开始学习组合的相关定理。

文章目录

  • 1 组合
    • 1.1 组合的计算公式
  • 2 总结

1 组合

跟排列一样。组合也分为不重复选取组合,与可重复选取可重组合。本节内容主要学习不可重复选取的组合

从 n 个不同元素中取 r 个不重复的元素组成一个子集, 而不考虑其元素的顺 序 , 称 为 n 取 r 的 组 合 ( r -combination) , 该子集称作 r -子集(r-subset) 。 n 取 r 组合的全体构成的集合用 C(n, r) 表示, 其元素个数用*C(n, r)*表示。(为了便于书面理解,以后都用C(n, r)表示元素个数)

  1. 例一

设集合 A={a, b, c, d}, 则 A 上的所有4取3的组合是:

1.1 组合的计算公式

一般的有:

  • C(n, r) * r! = P(n, r)

当n >= r时, C(n, r)=C(n, n-r)

  1. 例二

一个社团共有10名成员,从中选出3人组成指导委员会,则共有C(10, 3)=120种方法。(注意与之前的排列进行比较,这里直选三人,不确定这三人的职位,所以这三人不用再排列)

  1. 简单的格格问题:

从(0, 0)点出发沿 x 轴或 y 轴的正方向每步走一个单位,最终走到 (m, n) 点, 有多少条路径?


总共有8次向上走,10次向右走,一共走18步。只要在这18步中选择8步作为向上走(或者选择10步作为向右走即可,并且选择的步数不用有顺序)。所以答案为C(10+8 , 8) 或者C(10+8, 10)

  1. 例三:

回到曾经学习排列的时候遇见过的问题:由a, b, b, e, e, h, i, s, s, t, t, t可以组成多少个长度为12的字符串?

当时学习排列的时候我们已经学会使用排列的知识去计算,现在我们学习了组合的公式,我们还可以使用组合的公式进行计算。如下分析:

  • 首先先将三个t选择三个位置存放:

    这就是C(12,3)种方法

  • 然后再剩余的9个位置选两个位置存放s:

    这就是C(9,2)种方法

  • 剩余的7个位置选两个位置存放e:

    C(7, 2) 种可能

  • 剩余的5个位置选两个位置存放b:

    C(5, 2) 种可能

  • 然后最后剩余三个字符:a,h,i ,剩余三个空白位置:

    对剩余三个位置进行全排列:3!种可能。

所以最终有:C(12, 3) * C(9, 2) * C(7, 2) * C(5, 2) * 3!=9979200 种可能 这与之前我们学习排列的时候计算的结果是一样的。

2 总结

  • 学会不可重复选取的组合的计算公式

【离散数学中的数据结构与算法】七 排列与组合三相关推荐

  1. 【离散数学中的数据结构与算法】六 排列与组合二

    接着上一篇学习:[离散数学中的数据结构与算法]五 排列与组合一 上一篇文章主要学习了可重复选取的可重排列和不可重复选取的排列.他们都是在n个不同的对象中选取. 今天我们俩学习的是,当这个n个对象中有相 ...

  2. 【离散数学中的数据结构与算法】五 排列与组合一

    在leetcode刷题过程中,遇到过很多关于排列组合的问题.弄清楚排列组合的相关原理,是非常有用处的. 文章目录 1 问题 2 排列-有序选取 2.1 重复选取-可重排列 2.2 不重复选取-排列 2 ...

  3. 【离散数学中的数据结构与算法】八 排列与组合四

    上一篇文章学习了组合(不可重复选取的).今天来将可重复选取的组合学习一下. 文章目录 1 可重复选取的组合-可重组合 2 总结 1 可重复选取的组合-可重组合 现在有4种口味的棒棒糖,你要从中选3个( ...

  4. 【离散数学中的数据结构与算法】十一 错排问题

    错排问题比较难,但是也是经典算法问题 文章目录 1 错排问题 2 总结 1 错排问题 家中阳台有10盆不同的花,为保持新鲜感,希望每天重新摆放,使得每盆花都不在第一天放的位置.那么最多可以保持多少天每 ...

  5. 【离散数学中的数据结构与算法】十 汉诺塔

    汉诺塔也是经典的算法问题 文章目录 1 汉诺塔问题 1 汉诺塔问题 法国数学家卢卡斯(Edouard Lucas)在1883年提出了一个数学游戏: 传说在世界中心贝拿勒斯(印度北部)的圣庙里,一块黄铜 ...

  6. 【离散数学中的数据结构与算法】九 鸽巢原理

    鸽巢原理是非常著名的原理,生活正用的也很多. 文章目录 1 简单鸽巢原理的应用 2 定理(一般性鸽巢原理) 2.1 应用 3 总结 1 简单鸽巢原理的应用 定理(鸽巢原理) 若有 n 个鸽巢, n+1 ...

  7. 【离散数学中的数据结构与算法】二 欧几里得算法与裴蜀等式

    欧几里得算法是计算两个数最大公因子算法.又称辗转相除法.本文将学习为什么辗转相除法可以求得两个数的最大公因子.同时也可以根据最大公因子计算两个数的最小公倍数. 文章目录 1 欧几里得算法的理论基础 1 ...

  8. 【离散数学中的数据结构与算法】四 加法法则与乘法法则

    文章目录 1 加法法则 2 乘法法则 3 例子 3.1 例一 3.2 例二 3.3 例三 4 总结 1 加法法则 加法法则: 设事件 A 有 m 种产生方式, 事件 B 有n 种产生方式,则当 A 与 ...

  9. 【离散数学中的数据结构与算法】三 同余定理

最新文章

  1. 说说大型高并发高负载网站的系统架构【转】
  2. 图片裁剪的js有哪些(整理)
  3. 设计模式(3):抽象工厂模式(Abstract Factory Pattern)
  4. yv12转nv12,nv12转I420
  5. oracle11g 32021,64ビットのOracle Data Access Components(ODAC)のダウンロード
  6. PowerDesign逆向生成数据表结构PDM文件
  7. 怎么有效的管理微信群?分享3点有用的经验
  8. java使用poi制作的ppt被损坏_poi操作ppt创建表格,结果却是这样?
  9. 最简洁的秒杀 阿里月饼 js脚本
  10. Tomcat的appBase与docBase的区别
  11. macos系统中shell脚本权限不足Permission denied的问题
  12. ICN: Integrated crosstalk noise
  13. 可以EI检索的国际会议论文,对学术研究和资历积累有用吗?
  14. 目前大数据分析的发展状况是怎样
  15. 监控系统看这一篇就够了!zabbix、Prometheus等常见监控教程
  16. 华环光端机MySQL_华环155M光端机 H9MO-LME-01T1642/EJ
  17. Excel设置选项按钮
  18. android 自定义输入法布局,Android自定义输入法使用方法
  19. 莫尔斯代码的c语言编码,c语言编写莫尔斯码,帮帮忙啊,速回
  20. oracle 关系 表 视图_oracle重要的动态视图与基表的对应关系

热门文章

  1. 第十六期:简单的介绍一下大数据中最重要的MapReduce
  2. java学习(28):switch
  3. 64位虚拟机下asm()语法_用Hyper-V在win10中创建虚拟机,简单快捷,不用安装其它软件...
  4. iou画 yolov3_yolov3环境配置训练及优化
  5. iOS用workspace和cocoapods管理多个项目
  6. 【BZOJ1976】[BeiJing2010组队]能量魔方 Cube 最小割
  7. The Closest M Points BZOJ 3053
  8. 见微知著(一):解析ctf中的pwn--Fast bin里的UAF
  9. Kaggle Bike Sharing Demand Prediction – How I got in top 5 percentile of participants?
  10. SharePoint 跨域还原网站一则