一 排列

1.从n个元素中取r个元素排列的全体数目

Pnr=P(n,r)=n(n-1)(n-2)...(n-r+1)=n!/(n-r)!                  :例:n个球取r个放入r个不同盒子,每个盒子一个球,多少种放法

2. n个元素的全排列

Pnn=P(n,n)=n!

3.例:随机选n(n<365)个人,求其中至少有两人生日相同的概率。

n个人的生日的序列数:365n

n个人生日均不相同的概率:P(365,n)

故:1-P(365,n)/365n

4.圆排列

从n个元素中取r个元素沿一圆周排列

Qnr= Pnr/r  (取r个元素作排列的结果与圆排列的结果比较,每个排列重复了r次)

同理:Qnn= n!/n =(n-1)!

二 组合

1. Cnr :从n个元素中取r个元素排列而不考虑顺序;

如:n个球取r个放入r个盒子,r个盒子是相同的。

若在每种组合结果的基础对盒子排列,便得到n取r的排列,则:

Cnr r! = Pnr故  Cnr = Pnr/r! = n!/(n-r)!r!

2 分组

有a1,a2...a8八位成员,两两配对,分成4组,试求方案N

方法一:依次选择: a1选择同样有7种选择,余下6人中一人,选择同样有5种选择,余下4个,其中一个选择同样有3种可能; N=7*5*3

方法二:全排列与分组(组内,组间):

将8个成员全排列,共8!种可能;若分成4组,{12}{34}{56}{78},若在组内位置互换,对于选择同样没有影响,则全排列中选择同样有重复,重复数:2n

同时,4组之间的排列也不影响同样关系,故全排列中对同样关系也有重复,重复数:4!

故得 8!/(2n*4!)

方法三:先分组,再组内

8个人分成4组,第1组有C82种选择,第2组有C62种选择,同理第3组有C42种选择; 且组的顺序无关

N= C82* C62*C42 * C22 /4! =105

3 允许重复的组合

定理1:在n个不同元素中取r个进行组合,允许重复(r个元素中元素是可重复的),组合数:Cn+r-1r

定理2:将r个无区别的球,放入n个有标志的盒子,每个盒子中可多于一个,则共有 Cn+r-1r 种方案

例:(x+y+z)4共有多少项:

相当于 将4个球,放入3个盒子里,而且每个盒子中的数目不限。如 X4  可理解为将4个球都放入盒子X中。

N=C(n+r-1,r)=C(3+4-1,4)=C(6,4)=15

4 不相邻的组合

指:从序列A={1,2,....n}中取r个,其中不存在,i,i+1两个相邻数同时出现于一个组合中的组合。

定理: 从序列A={1,2,....n}中取r个作不相邻组合,其中组合数为:Cn-r-1r

三 母函数-幂级数

定义:设 a0,a1,a2...an是一个数列,定义它的母函数为幂级数                            ——————————解决元素重复的组合问题

fa(x)=(1+x)a=C(a,0)X0+C(a,1)X1+C(a,2)X2+C(a,3)X3+.....+C(a,n)Xn+

母函数与其他母函数存在的关系式:

A(x)= 1/(1-x) = 1+X+X2+X3+.....+Xn+

B(x)=1/(1-x)2=A(x)/(1-x) = 1+2X+3X2+4X3+.....+nXn-1

C(x)=1/(1-x)3=B(x)/(1-x) = 1+3X+6X2+10X3+.....+

应用:

例1:红球两个,白球,黄球各一个,试问有多少种不同的组合数

利用: fa(x)=(1+x)a=C(a,0)X0+C(a,1)X1+C(a,2)X2+C(a,3)X3+.....+C(a,n)Xn+ 其中每一项 指数表示选择数,系数表示该该选择的方案数。

令r个球组合数为Cr,则 C0 , C1 , C2 , C3 , C4 的母函数:

G(x)=( 1+x+x2)(1+x)(1+x)=1+3x+4x2+3x3+x4

1+x+x2表示第红球选0个,选一个,选两个

共有:1+3+4+3+1=12种不同组合数。

由4x2表示选2个球的组合数为4;3x表示选1个球的组合数

例2 :若有1g,2g,3g,4g的砝码各一枚,问能称出几种可能的重量。

利用: fa(x)=(1+x)a=C(a,0)X0+C(a,1)X1+C(a,2)X2+C(a,3)X3+.....+C(a,n)Xn+ 其中每一项 指数表示重量,系数表示该重量的方案数。

母函数为:G(x)=(1+x)( 1+x+x2)( 1+x+x2+x3)( 1+x+x2+x3 +x4)

将系数相加,可得答案。

例3: 若有1g的砝码3枚,2g的砝码4枚,4g的砝码2枚,问能称出哪些重量,各有几种方案。

G(x)=(1+x+x2+x3  )( 1+x2 +x4+x6+x8  ) (1+x4+x8)

四 母函数—指数型

定义:设 a0,a1,a2...an是一个数列,定义它的母函数为指数型母函数:                                 —— 解决元素重复的排列问题

fa(x)=(1+x)a=C(a,0)X0+C(a,1)X1/1!+C(a,2)X2/2!+C(a,3)X3/3!+.....+C(a,n)Xn/n!+

例1:

8个元素,a1重复3次,a2重复2次,a3重复3次,从中取r个组合,其组合数的母函数:

G(x)=(1+x+x2+x3  )( 1+x2 )(1+x+x2+x3  )=1+3x+6x2+9x3+10x4+9x5+6x6+3x7+x8

可得到,若取4个元素进行组合有10种方案。  若需要取4个元素进行排列呢:问题就转化为从8个元素取4个进行排列,其排列数应是每种组合的排列。

如:x1x33表示1个a1,3个a3; 那么它对应的排列数为 4!/1!3! ;

由:

Cnr = Pnr/r!

Ge(x)=(1+x/1!+x2/2!+x3/3!  )( 1+x/1!+x2/2! )(1+x/1!+x2/2!+x3/3!  )=

1+ 3X/1! + 9x2/2! + 28x3/3! + 70x4/4! + 170x5/5! + 350x6/6! + 560x7/7!+ 560x8/8!

这里取K的排列数应该是K!.故取4个的排列数应是:70;

例: a1,a2...a7为7个有区别的球,将它们放入4个有标志的盒子,要求第1,2两个盒子必须含偶数个数,第3个盒子含有奇数个数。 有多少放法

可理解为从1,2,3,4这4个数字中取7个作允许重复的排列————元素重复的排列

例:求1,3,5,7,9 这5个数字组成的n位数的个数,要求其中3和7出现的次数为偶数,其他数字出现的次数无限制。

来源:https://www.cnblogs.com/dan-cnblogs/p/4733721.html

利用计算机实现排列组合公式,计算机算法基础 ——数学(排列组合函数)相关推荐

  1. 组合公式计算机,组合数公式

    组合数公式是指从 n 个不同元素中,任取 m(m≤n) 个元素并成一组,叫做从 n 个不同元素中取出 m 个元素的一个组合:从 n 个不同元素中取出 m(m≤n) 个元素的所有组合的个数,叫做 n 个 ...

  2. 算法简介及计算机算法基础——算法学习(四)

    文章目录 关注算法缘由 描述计算机算法基础 描述运行时间 循环不变式 参考文档 接下来的算法学习内容主要根据<程序员必读经典(算法基础+计算机系统)>一书而写,作为读书笔记,感兴趣的可以见 ...

  3. 沈孝钧计算机算法基础答案,计算机算法基础教学课件ppt作者沈孝钧第12章-PPT-N2课件.pptx...

    计算机算法基础教学课件ppt作者沈孝钧第12章-PPT-N2课件.pptx 第 12 章计算几何基础计算几何(Computational Geometry)是计算机算法的一个重要分支,它要解决的是如何 ...

  4. 沈孝钧计算机算法基础答案,计算机算法基础教学课件ppt作者沈孝钧第14章-PPT-N2课件.pptx...

    计算机算法基础教学课件ppt作者沈孝钧第14章-PPT-N2课件.pptx 第 14 章NP-完全问题讨论问题的复杂性.根据其难易程度把问题分类.如果一个问题有多项式的算法,则称为可驾驭的(tract ...

  5. 组合 公式 计算机,排列与组合的概念与计算公式

    排列与组合的概念与公式 1.排列及计算公式 从n个不同元素中,任取m(m≤n)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列:从n个不同元素中取出m(m≤n)个元素的所有排列 ...

  6. 沈孝钧计算机算法基础答案,计算机算法基础

    出版信息 沈孝钧 / 机械工业出版社 / 2013-11 / 45.00元 内容简介 计算机算法是计算机科学的一个重要分支,也是一个难点.本书作者根据自己20多年在国内.国外的教学与科研实践,系统地总 ...

  7. 利用Matlab编写龙贝格算法(romberg)求函数积分

    这次是我初次接触matlab,源于数学老师布置的一个作业:用龙贝格算法来计算函数的积分. 具体的计算原理,由于是数学的东西,不好打印,就不写了.主要把自己的代码贴下来慢慢理解. 一共写了两个文件.一个 ...

  8. 计算机算法基础_强智科技继续冠名第十六届“强智杯”湖南省大学生计算机程序设计竞赛...

    2020年10月17-18日,第十六届"强智杯"湖南省大学生计算机程序设计竞赛在长沙理工大学成功举办,本次竞赛由省教育厅主办.省高教学会计算机教育专业委员会协办.长沙理工大学承办, ...

  9. 计算机算法基础_考情分析|2020年华南理工大学计算机考研考情分析

    这段时间会给大家各大院校20考研数据,2020华南理工大学计算机考研的初试数据如下: 计算机科学与工程学院 初试:一.408计算机学科专业基础综合 科目:数据结构.计算机组成原理.操作系统.计算机网络 ...

  10. 计算机应用基础excel2007 6.2使用函数和公式 教案,计算机应用基础教案62使用函数和公式.docx...

    高等教育出版社 <计算机应用基础(Windows XP + Office 2007)>电子教案 任务6.2 使用函数和公式 u 设计思想与教学策略 通过已有数学函数与公式知识的学习,用对比 ...

最新文章

  1. 几条曲线构建Android表白程序
  2. Hibernate的配置文件 Hibernate.cfg.xml与xxx.hbm.xml
  3. java中集合的区别_Java中的集合与集合之间的区别
  4. linux内存占用过高原因
  5. python僵尸进程和孤儿进程_python中多进程应用及僵尸进程、孤儿进程
  6. 如何验证某个 string 是否为合法的 GUID ?
  7. 前端学习(583):在console中访问节点
  8. Hibernate中的三种数据持久状态和缓存机制
  9. 数据全景洞察概念简介
  10. Linux手动释放缓存的方法
  11. VS.net2005的稳定性真的很差劲
  12. UVa 10129 - Play on Words (欧拉回路, DFS)
  13. 笔记本电脑装机详细步骤图文教程
  14. Win10系统截图新工具的快捷键
  15. 调用函数求三个数中的最大数
  16. Android MD5加密法
  17. Windows“启动”文件夹
  18. Hibernate5的学习笔记(二)
  19. 2016年3月23日日本本州岛之旅
  20. Android 再按一次退出程序(模拟Home键退出)

热门文章

  1. 人工智能的目标与进化
  2. 400GE燎原前夜,智能IP网络的核心路由器巅峰际会
  3. 狂神ajax,Ajax---狂神说
  4. 超万支团队报名,历时4个月,阿里云原生编程挑战赛即将决出最后赢家
  5. 网站打开速度标准及测试
  6. 4键电子手表说明书_电子表的使用方法 电子手表使用说明书
  7. erp系统软件php,SMALL-ERP 一个用PHP写的小型ERP系统,麻雀虽小,五脏俱全。 ERP-EIP-OA-Portal 企业管理 271万源代码下载- www.pudn.com...
  8. Scala Either Left Right
  9. Java - 为什么Java不支持运算符重载?
  10. 前端之jquery基础