R语言【基本计数原理与技巧——阶乘、组合、排列】
加法原理定义:做一件事有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_rnPr,又记为PnrP^r_nPnr或AnrA^r_nAnr(A是排列的另一英文Arrangement的首字母),排列的计算方式如下:
nPr=n!(n−r)!_nP_r = \frac{n!}{(n-r)!} nPr=(n−r)!n!
特别地,有nPn=n!_nP_n = n!nPn=n!.
定义1.3(组合) 组合(combination)是指从n个不同 的元素中无放回地抽取r(r≤\leq≤n)个元素并成一组(不考虑元素的先后次序),记为nCr_nC_rnCr或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!} nCr=r!nPr=(n−r)!r!n!
特别地,规定nC0=nCn=1_nC_0 = _nC_n = 1nC0=nCn=1.
R中计算组合的命令为choose(n,k),给出的是nCK_nC_KnCK的值,例如,求10C5_{10}C_510C5的命令为
choose(10, 5)
[1] 252
计算排列的命令,如10P5_{10}P_510P5时,可利用关系式10P5=10C5×5!_{10}P_5 = _{10}C_5\times5!10P5=10C5×5!,输入如下命令:
choose(10, 5) * factorial(5)
[1] 30240
R语言【基本计数原理与技巧——阶乘、组合、排列】相关推荐
- R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)
R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合) 目录 R语言使用ggpubr包的ggarrange函数组合结论多张结论图(水平并排组合)
- R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直组合+水平组合)并对图像进行顺序编码A、B、C,,,
R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直组合+水平组合)并对图像进行顺序编码A.B.C,,, 目录
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将表格嵌套在可视化图像中
R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将表格嵌套在可视化图像中 目录 R语言使用ggpubr包的ggarran
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包在散点图的侧面添加辅助图形、并使用NULL将不需要可视化的侧面留白
R语言使用ggpubr包的ggarrange函数组合结论结论图:使用ggpubr包在散点图的侧面添加辅助图形.并使用NULL将不需要可视化的侧面留白 目录
- R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直堆叠组合)、并为组合后的图像添加图形的注释信息(标题,副标题,坐标轴,字体,颜色等)
R语言使用ggpubr包的ggarrange函数组合多张结论图(垂直堆叠组合).并为组合后的图像添加图形的注释信息(标题,副标题,坐标轴,字体,颜色等) 目录
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像.文本.表格组合在一起展示 目录 R语言使用ggpubr包的ggarrange
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将多个可视化结论嵌套起来输出(ggarrange组合ggarrange组合后的图像)
R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将多个可视化结论嵌套起来输出(ggarrange组合ggarrange组合后的图像) 目录
- R语言科学计数法详解:digits和scipen设置
控制R语言科学计算法显示有两个option: digitis和scipen.介绍的资料很少,而且有些是错误的.经过翻看R语言的帮助和做例子仔细琢磨,总结如下: 默认的设置是: getOption(&q ...
- R语言科学计数法数据改变/丢失/失准,取消科学计数法的原因和解决方法
问题描述 如何在R中取消科学计数法 & 对R中使用科学技术法表示的数据"取消科学计数法"以后,得到的值和原来的值会不一样. 需求背景 分析留存数据时,数据库底表的字段是一个 ...
最新文章
- 【POJ1144】Network
- 为什么两个controller的session的id不一样_我,为什么会离婚?我为什么离婚?
- kratos import 飘红问题
- JAVA并发编程的基础
- 独立站运营模式怎么选择?
- 宠物火葬行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- 在线多空行只保留一个工具
- HTML5生日祝福网页代码【粉色生日快乐模板】HTML+CSS+JavaScript
- 计算机网络技术练习,计算机网络技术基础各章节综合练习题及答案
- mac 无法对计算机进行更改,解析深度技术win10 MAC不能修改的原因和解决成功的技巧...
- Raid5数据恢复算法原理- raid5数据恢复案例
- 计算机网络实验六(子网划分)
- CS5211:DP/eDP to 2Port LVDS
- C/C++ 二维数组传参方法总结
- c语言狗追兔子,[转载]狗追兔典型例题
- alios是安卓吗_鸿蒙OS系统被质疑,谷歌也有新布局!阿里云OS事件会再现吗?
- 爬取网站使用代理IP
- 深圳区块链企业在江岸区设区域总部
- git入库基本操作流程
- 【01】什么是 APP?移动 APP 有几种类型?
热门文章
- Centos7系统重装报错“ /dev/root does not exist“解决办法
- OCR图片识别文字源码(支持多国文字识别)
- 如何接入IPC的GB28181平台
- 虚拟机搭建csgo服务器,csgo虚拟机设置以及游戏中文语言的设置
- html怎么做成3d正方体,使用css3创建动态3d立方体(html5实践)
- 计算机行业个人就业意向,个人应聘工作简历-计算机专业.docx
- 网络攻防技术的技术基础,网络攻防原理与技术
- HTML列宽调整,调整表格中的列宽(CSS/HTML)
- org.junit.runners.model.InvalidTestClassError异常解决
- 测试工程师长路漫漫,从测试0到测试1? 谁知道我经历了什么......