组合数学与概率论.pptVIP

  • 23
  • 0
  • 约8.02千字
  • 约 45页
  • 2018-06-06 发布于河北
  • 举报
组合数学与概率论

排列、组合和二项式系数 基本性质: (1)排列:从n个元素中取出k个元素进行排列,共有 种排列方法。 (2)组合数:从n个元素中取出k个元素进行组合,共有 种不同组合。 (i)用阶乘表示: (ii)对称条件 : (iii)移进移出括弧 : 排列、组合和二项式系数 (iv)加法公式 (v)求和公式 (3)二项式定理: ,其中 是二项式系数。令 有 ,再令 得, (4)调和级数:把调和级数前n项之和记为 ,则 2. Johnson-Trotter算法 Johnson-Trotter算法思想:为每一个元素指定一个方向,元素的方向可以分为两种:如果数字x上的箭头指向相邻的元素y的大小关系为 ,则称元素x是不稳定的;如果数字x上的箭头指向相邻的元素y的大小关系为 ,则称元素x是稳定的。Johnson-Trotter算法正是从 的初始序列经过不断的调整,使得所有元素都变成稳定的,中间过程的输出结果就是所需要的规模为的排列序列。例如对于三个元素的调整过程如下: 其中标志有下划线的数字表示此轮调整的元素,观察最后一个序列 发现,所有元素都是稳定的,所以算法停止。 Johnson-Trotter算法执行流程图如下: 这个算法是求解排列问题的最好算法之一,算法时间复杂度是,尽管还是指数级别的,但问题不在于算法本身,而在于要求得到的元素个数本身就达到了n!个,从这个角度可以说算法是线性的。 3.字典排序算法: 尽管Johnson-Trotter算法非常高效,但是似乎不是那么直观,不太符合人们的思维习惯。事实上比较自然的算法称为“字典排序(lexicographic order)算法”,它是根据单词在字典中的排列顺序得到的算法。例如对于三个元素的序列,按照字典排序得到的排列序列如下: 123 132 213 231 312 321 正如单词在字典中的顺序那样,字母表前面的字母总是排在最前面,所以序列123排在序列132前面,因为它们都有同样的前缀‘1’,但是‘2’‘3’。按照这样的思想对于n个元素的排列问题,可以首先从序列1,2,3,…,n出发,不断的调整直到产生完全逆序的序列n,n-1,…,2,1,中间的过程下是要求得到的排列序列。 降低规模的幂集算法 4.降低规模的幂集算法 上面在排列问题中应用的decrease-by-one的技术在求幂集中也是适用的,关键在于把规模为n+1的集合的幂集 看作是规模为n的幂集 与在 中每个元素中加入 得到的集合的并集。例如对于三个元素的集合的幂集构造过程如下表所示。 降低规模的幂集算法 从上表中可以清楚地看到,对于大小为n的集合,它的幂集包含的集合个数为2n。对比于排列问题需要输出n!个序列,集合要求输出的个数要小,但是还是达到指数级别的,从中也可以看到到排列组合问题的算法复杂度。 递归问题 本节以三个问题为例讲述递归思想和方法,学会找递归方程。这三个问题给出了递归问题的感性认识。 问题 1:汉诺塔问题(法国数学家 Edourad Lucas 提出) 问题的描述:由8个圆盘组成的一个塔,最初圆盘按尺寸递减的次序堆放在三根杆中的一根杆上,目的是把整个塔移到另一根杆上,移动遵循Lucas规则: (a)一次移动一个盘。 (b)大盘不能移到小盘上。 递归问题 问题的推广:由n个盘组成一个塔,最初圆盘按尺寸递减的次序堆放在三根杆中的一根杆上,要求按Lucas规则把整个塔移到另一根杆上,问至少移动多少次? 分析:不妨设至少移动 次 时,显然只需移动一次,即 。 时,先将小盘移到另一根杆上,再将大盘移到第三根杆上,最后将大盘移到第三根杆上,至少需要移动3次,故 。

文档评论(0)

1亿VIP精品文档

相关文档