加法原理定义:做一件事有n种方法,第一类有m1m_1m1​种方法,第二类有m2m_2m2​种方法,…第n类有mnm_nmn​种方法,完成这件事共有m1m_1m1​+m2m_2m2​+…+mnm_nmn​种不同的方法。

乘法原理定义:如果完成一个事件可以分解为n个独立的步骤,每个步骤均有m种实现方式,那么,完成这一事件总共有mxn种方法。

分类问题用加法,分步问题用乘法。

定义 1.1 (阶乘) 阶乘(factorial),即阶乘式的乘法,定义如下:
n!=n×(n−1)×(n−2)×...×3×2×1n! = n\times(n-1)\times(n-2)\times...\times3\times2\times1 n!=n×(n−1)×(n−2)×...×3×2×1
规定 0! = 1.

有时可能遇到双阶乘(double factorial),其定义为
n!!={n×(n−2)×...×4×2,n为偶数;n×(n−2)×...×3×1,n为奇数n!! = \begin{cases} n\times(n-2)\times...\times4\times2, n为偶数; \\ n\times(n-2)\times...\times3\times1, n为奇数\\ \end{cases} n!!={n×(n−2)×...×4×2,n为偶数;n×(n−2)×...×3×1,n为奇数​
仍规定0!! = 1

在R语言中,计算阶乘的命令为factorial()、例如,求10!的命令为

factorial(10)
[1] 3628800

定义1.2 (排列) 排列(permutation)是指从n个不同元素中无放回(without replacement)地抽取r(r≤\leq≤n)个元素所排成的一列(考虑元素的先后次序)此排列的总数为nPr_nP_rn​Pr​,又记为PnrP^r_nPnr​或AnrA^r_nAnr​(A是排列的另一英文Arrangement的首字母),排列的计算方式如下:
nPr=n!(n−r)!_nP_r = \frac{n!}{(n-r)!} n​Pr​=(n−r)!n!​
特别地,有nPn=n!_nP_n = n!n​Pn​=n!.

定义1.3(组合) 组合(combination)是指从n个不同 的元素中无放回地抽取r(r≤\leq≤n)个元素并成一组(不考虑元素的先后次序),记为nCr_nC_rn​Cr​或CnrC^r_nCnr​或(rn)(^n_r)(rn​)。或者说,组合数其实考虑的是n个不同元素中无放回地抽取r(r≤\leq≤n)个元素,可以构成的不同子集的个数,组合的计算方式如下:
nCr=nPrr!=n!(n−r)!r!_nC_r = \frac{_nP_r}{r!} = \frac{n!}{(n-r)!r!} n​Cr​=r!n​Pr​​=(n−r)!r!n!​
特别地,规定nC0=nCn=1_nC_0 = _nC_n = 1n​C0​=n​Cn​=1.

R中计算组合的命令为choose(n,k),给出的是nCK_nC_Kn​CK​的值,例如,求10C5_{10}C_510​C5​的命令为

choose(10, 5)
[1] 252

计算排列的命令,如10P5_{10}P_510​P5​时,可利用关系式10P5=10C5×5!_{10}P_5 = _{10}C_5\times5!10​P5​=10​C5​×5!,输入如下命令:

choose(10, 5) * factorial(5)
[1] 30240

R语言【基本计数原理与技巧——阶乘、组合、排列】相关推荐

  1. R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)

    R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合) 目录 R语言使用ggpubr包的ggarrange函数组合结论多张结论图(水平并排组合)

  2. R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直组合+水平组合)并对图像进行顺序编码A、B、C,,,

    R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直组合+水平组合)并对图像进行顺序编码A.B.C,,, 目录

  3. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将表格嵌套在可视化图像中

    R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将表格嵌套在可视化图像中 目录 R语言使用ggpubr包的ggarran

  4. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包在散点图的侧面添加辅助图形、并使用NULL将不需要可视化的侧面留白

    R语言使用ggpubr包的ggarrange函数组合结论结论图:使用ggpubr包在散点图的侧面添加辅助图形.并使用NULL将不需要可视化的侧面留白 目录

  5. R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直堆叠组合)、并为组合后的图像添加图形的注释信息(标题,副标题,坐标轴,字体,颜色等)

    R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直堆叠组合).并为组合后的图像添加图形的注释信息(标题,副标题,坐标轴,字体,颜色等) 目录

  6. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示

    R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像.文本.表格组合在一起展示 目录 R语言使用ggpubr包的ggarrange

  7. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将多个可视化结论嵌套起来输出(ggarrange组合ggarrange组合后的图像)

    R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将多个可视化结论嵌套起来输出(ggarrange组合ggarrange组合后的图像) 目录

  8. R语言科学计数法详解:digits和scipen设置

    控制R语言科学计算法显示有两个option: digitis和scipen.介绍的资料很少,而且有些是错误的.经过翻看R语言的帮助和做例子仔细琢磨,总结如下: 默认的设置是: getOption(&q ...

  9. R语言科学计数法数据改变/丢失/失准,取消科学计数法的原因和解决方法

    问题描述 如何在R中取消科学计数法 & 对R中使用科学技术法表示的数据"取消科学计数法"以后,得到的值和原来的值会不一样. 需求背景 分析留存数据时,数据库底表的字段是一个 ...

最新文章

  1. 磁盘分析工具Ncdu的简单使用和体验
  2. 【MDCC 2015】开源选型之Android三大图片缓存原理、特性对比
  3. css中position属性(absolute/relative/static/fixed)
  4. MySQL如何查询两个日期之间的记录
  5. 云炬Android开发笔记 10主界面-首页UI与数据解析器开发(RecyclerView)
  6. 写给即将离开校园准备进入 SAP 研究院实习的朋友
  7. 【期望DP】概率充电器(luogu 4284)
  8. LeetCode 1717. 删除子字符串的最大得分
  9. 线性代数拾遗(六):特征值与特征向量
  10. Linux ${}表达式详解
  11. 庞伟(为奥运冠军名字作诗)
  12. 宿主机mac os无法连接到虚拟机centos
  13. 【重点】LeetCode 24. Swap Nodes in Pairs
  14. php加入语音播报功能_一个有语音播报功能的网络聊天室PHP源码
  15. 《(学习笔记)两天进步一点点》(3)——应用BindingSource实现数据同步
  16. 外贸企业邮箱域名怎么注册?企业邮箱申请域名流程?
  17. vm虚拟机 加密密码 破解术(亲测可用!)
  18. 2021年安徽省安全员C证考试资料及安徽省安全员C证证考试
  19. GCC汇编源码中的.rept关键字
  20. 基于AdaBoost算法的情感分析研究

热门文章

  1. 本地电脑如何配置一个域名对应多个网址
  2. vim粘贴格式变乱处理
  3. 二叉树前序后序求中序序列
  4. 用Android系统的华为平板,性能强的不像话,最强安卓平板华为平板M6上手
  5. 惠普打印机提示使用过期的耗材是什么原因?
  6. PHP CURL 与 java http
  7. Jenkins+Docker自动化部署项目
  8. VMware忘记账号密码的解决办法
  9. Perl语言创始人-Larry Wall
  10. SpringBoot自定义JSON序列化规则