Skip to content

5

:material-circle-edit-outline: 约 688 个字 :material-clock-time-two-outline: 预计阅读时间 2 分钟

image-20240603101511614

20240603补天ing

离散数学2024-04-19第3-5节 (zju.edu.cn)

加法原理

加法原理就是,你有2个不同的苹果,5个相同的橘子,你只能吃一种水果,你有几种选择?

显然是 \(2+1=3\)

image-20240603104811658

乘法原理

乘法原理就是,你有2个不同的苹果,5个不同的橘子,你只能吃一个苹果和一个橘子,你有几种选择?

显然是 \(2*5=10\)

image-20240603110001112

image-20240603105535078

Pigeonhole Principle

就是n+1个东西放入n个盒子,至少有一个盒子有两个东西

n个东西放入k个盒子,至少有一个盒子有至少 [n/k] (往上取整)个东西给

但是,题目很难!!!!

image-20240603111209115

\(q_j\)\(n\) 种取值可能,即 \(2n\) 里面的所有奇数,那么 \(n+1\) 个数这么分解之后肯定有两个数的 \(q_j\) 一样,我们记为 \(q_i=q_j\)

于是这俩是可除的,因数为2

Subsequence

略,就序列和子序列,单调递增序列

麻了原来其它科目默认我们会的概念都来自这个离散数学,我是本末倒置了,最后才来学离散

image-20240603113823695

即长度为 \(n^2+1\) 的序列一定有一个长度为 \(n+1\) 的严格增/严格减的子序列

image-20240603113956830

image-20240603114939378

例题

image-20240603115007317

image-20240603115100967

image-20240603115133842

image-20240603115148101

image-20240603115230202

Permutations and Combinations

排列组合

不重复的

image-20240603115407142

image-20240603115416594

image-20240603115456401

image-20240603115550369

可重复的(广义)排列组合

隔板法

image-20240603125019334

image-20240603125023598

隔板法公式化

image-20240603125131403

image-20240603125105107

image-20240603125117725

image-20240603125534930

image-20240603125723019

将物品放入箱子问题

image-20240603125744438

image-20240603125839714

生成排列组合

字典序

对于排列,我们定义一个东西叫字典序(lexicographic ordering),一个序列先于另一个序列叫 precede

注意不要和数字搞混,排序里每个元素只能 出现一次

image-20240603130239057

我们希望找到一个算法,从最小的字典序一个一个往下推,推出最大的字典序,就能穷举排列了

最小的显然是12345,那么我们的问题就变成从第k小的找出第k+1小的

办法就是:

  1. 首先,从当前序列后面往前,找出第一对前小后大的相邻元素 \({a_j,a_{j+1}}\) ,这意味着 \(a_{j+1}\sim a_n\) 里面都是降序
  2. 然后,我们从 \(a_{j+1}\sim a_n\) 里面比 \(a_j\) 大的元素,取其中最小的放在 \(a_j\) 的位置
  3. 最后,我们将 \(a_j\)\(a_{j+1}\sim a_n\) 剩下的元素从小到大排序放在后面,完成

image-20240603130539779

这个算法挺好理解的,可以画折线图看看,有空我补一下怎么理解

相信很多人之前穷举都是有意无意采用了这种办法,因为这种是最直觉最直观的办法

完美!由此我们可以按照字典序推算出所有的排列组合,达到快速无重复穷举的目的

image-20240603132924884