1 / 39

具体数学 Concrete Mathematics

北京航空航天大学计算机学院. 具体数学 Concrete Mathematics. 赵启阳 2014年10月1日星期三. 8.4 投硬币 Flipping Coins. 正面朝上次数的概率母函数. 记硬币在落下后正面朝上的概率为 p ,反面朝上的概率为 q 。那么 。 仅扔 1 次硬币的话,正面朝上次数的变量为 X ,那么 X 的概率母函数为 那么,扔 n 次硬币的话,如果每次之间是独立的,那么总的硬币朝上次数的变量的 pgf 为 所以,正面朝上次数为 k 的概率为. 为什么?. 二项分布. 特殊的扔法.

bayle
Download Presentation

具体数学 Concrete Mathematics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 北京航空航天大学计算机学院 具体数学Concrete Mathematics 赵启阳 2014年10月1日星期三

  2. 8.4 投硬币Flipping Coins

  3. 正面朝上次数的概率母函数 • 记硬币在落下后正面朝上的概率为p,反面朝上的概率为q。那么 。 • 仅扔1次硬币的话,正面朝上次数的变量为X,那么X的概率母函数为 • 那么,扔n次硬币的话,如果每次之间是独立的,那么总的硬币朝上次数的变量的pgf为 • 所以,正面朝上次数为k的概率为 为什么? 二项分布

  4. 特殊的扔法 • 现在考虑一种特殊的扔法:一直扔到出现正面朝上为止。那么,需要扔k次的概率是多少? • 显然,k = 1的概率为p;而k = 2的概率为qp;顺着来,在一般的k上的概率为qk-1p。那么,对应的pgf为 • 再推广一下,出现n次正面朝上的概率母函数为 • 由此引出负二项分布的pgf 负二项分布:在正向事件发生次数达到某个定值之前,负向事件发生次数为k的概率

  5. 特殊的扔法 • 在这种特殊的扔法中,概率空间与此前遇到的概率空间有些不同。现在的概率空间中包含无限个元素,其中每个元素都是正面/反面组成的的一个序列,其中包含n个正面,而且序列的最后一个值是正面,相应的概率为pnqk-n。 • 例如,对于n = 3,如果用H和T表示正面/反面的话,那么序列THTTTHH就是此概率空间中的一个元素,其对应的概率值为qpqqqpp = p3q4。

  6. 二项分布的pgf • 假设X、Y分别服从n和p决定的二项分布和负二项分布。由于X的pgf为H(z)n,因此X的期望值为 • X的方差为 • X的标准差为 ,因此扔n次硬币的话,正面朝上的次数大约为

  7. 负二项分布的pgf • 对于服从负二项分布的Y,我们知道它的pgf为 • 首先,我们来看一个简单的pgf(事实上是n=1时的负二项分布) • 显然有

  8. 负二项分布的pgf • 由于p + q = 1,因此继续化简得到 • 回到Y的pgf,可以得到 • 还有没有更简单的计算方法?让我们观察一下pgf G的倒数形式,记为F(z)

  9. 负二项分布的pgf • 因此有 • 很遗憾,这里的函数F并不是任何概率分布的母函数,因为它的一个系数(-q/p)是负数。然而,它仍然满足所有系数之和等于1的要求,也就是说,如果仍然用硬币来举例的话,可以看成,在F对应的概率分布上,正面朝上的概率为-q/p,正面朝下的概率为1/p=1+q/p。 • 这样处理起来,G(z)就可以认为是:用F(z)所决定的概率分布,扔了- 1次硬币。

  10. 负二项分布的pgf • 相应地,参数为(n, p)的负二项分布就等同于参数为(-n, -q/p)的(普通)二项分布。另一方面,二项分布的均值和方差很容易计算,那么对这个“负”二项分布,就有 • 负参数下的普通二项分布!!!这也是“负”二项分布名称的来历。

  11. 负二项分布的pgf • 回顾这种解决思路 2 1 在数值上 发现1次负二项分布与普通二项分布的联系 将1次负二项分布看成负参数的普通二项分布 3 4 将(n,p)负二项分布看成(-n,-q/p)的普通二项分布 借用求二项分布均值方差的简便方法,得到结果

  12. 连续两次正面的扔硬币游戏 • 考虑一个更复杂的扔硬币游戏:我们需要扔多少次硬币,才能出现连续两次正面朝上的结果? • 很显然,在这个游戏对应的概率模型中,概率空间中的元素是H/T构成的、以HH结尾的序列: • 对概率空间中的任一元素,其概率等于H换成p、T换成q的乘积。例如对于THTHH,其概率为

  13. 连续两次正面的扔硬币游戏 • 仔细观察所有序列,有什么共同的结构特征? • 1、每个序列末尾两位都是HH; • 2、除末尾以外的其他部分不包含HH; • 第1个特征很简单。 • 第2个特征呢?假设序列长度为n,我们在中间位置上遇到了H,那么H的前后必定都是T。 ...THT…HH

  14. 连续两次正面的扔硬币游戏 • 继续分析第2个特征: • 除了结尾处以外,序列的其他片断都是由T、HT组成的。注意,HT是绑定在一起的。换句话说,我们可以写出一个“生成文法”,给出序列的组装方法: • 小问题:能否将上面的{T、HT}换成{TH、T} ? ...THT…HH

  15. 连续两次正面的扔硬币游戏 • OK。根据前面的组装方法,我们可以将所有的序列按照其“长度”的递增顺序排列起来(当然,HT被看做是“1个字母”): • 依次考虑这些序列的对应概率,很容易得到

  16. 连续两次正面的扔硬币游戏 • 也就是说,对于“长度”为n的所有序列,其概率的一般形式为 • 好的,如果我们关注反应Ω中序列长度的随机变量X,那么现在我们可以写出X的pgf了: 另一种方法参见Ch. 7和后面的例子 母函数的对应级数默认收敛

  17. 连续两次正面的扔硬币游戏 • 在得到了pgf之后,就可以很容易地算出序列长度变量X的均值和方差: • 例如对均匀的硬币,均值和方差分别为6和22。也就是说,平均起来,需要扔6次能够得到连续两次正面朝上的结果。

  18. 更复杂的硬币游戏 • 在Chap. 7给出的母函数方法的基础上,可以考虑更复杂的硬币游戏:Sheldon、Leonard和Penny分别选定模式HHTH、HTHH和THHH。两两之间玩这样的游戏:不停地扔一枚硬币,直到出现某个模式为止,并且判相应的人获胜。有这样的有趣结果: SheldonVSLeonard 赢面3:2 Penny VSSheldon Leonard VSPenny 赢面7:5 赢面7:5

  19. 一个PGF与马尔可夫链的例子 • 二英和三十二郎最近赚嗨了。他们一直在靠山屯、牤牛屯、向阳屯、七里屯和铁岭转悠,每个月都在一个地方开演唱会。为照顾导师们的体力,经纪人选择下个月演唱会地点时,都会从邻屯中均匀随机地选择一个。年初,二老师在靠山屯,三十二郎在七里屯。老乡们想知道,大约多久之后二位导师的演唱会会撞车?结果靠谱不? 靠山 牤牛 铁岭 向阳 七里

  20. 一个PGF与马尔可夫链的例子 • 将老乡们的额问题转换成数学语言,“大约多久之后撞车”为等待时间的期望值,“是否靠谱”需要考察等待时间的方差多大。方差小即意味着预测靠谱。 • 在每个月,二英和三十二郎的演唱会地点的组合有四种: D 演唱会地点在对角线两端 A 演唱会地点相邻但都不在铁岭 K 演唱会地点在铁岭和别的一个啥地儿 S 演唱会地点在一个地方(老乡们欢呼) • 下面将D、A、K、S赋以另一层意义 D从初始状态到状态D的步数的随机变量 A从初始状态到状态A的步数的随机变量 K从初始状态到状态K的步数的随机变量 S从初始状态到状态S的步数的随机变量

  21. 一个PGF与马尔可夫链的例子 • 首先列出马尔可夫链的状态转移图 • 然后给出随机变量D、A、K、S的PGF

  22. 一个PGF与马尔可夫链的例子 • 根据上面的方程组得到 • 利用上式,求解PGF方程组得到 • 上式即为状态随机变量S的PGF,因此可以根据PGF的一、二阶导数计算其期望和方差,分别为75/16和105/4。也就是说,大约在4.6875个月之后二英和三十二郎撞车!!!均方差5.1235说明这个预测不怎么靠谱,前后摆动很大。

  23. 一个PGF与马尔可夫链的例子 • 还有一种更简便的求解方法。注意到,如果以1 + w替换z,那么由D、A、K的递归式PGF,有 • 因此很容易地求出 • 随后即可求解期望值和方差。 为什么以1 + w替换z,解得的S的导数是对的?

  24. 8.5 哈希Hashing

  25. 一段普通的查找代码 S1 Set j := 1.(已经访问了所有 < j 的位置) S2 If j > n, stop.(查找失败) S3 If KEY[j] = K, stop.(查找成功) S4 Increase j by 1 and return to step S2. (再来) 查找成功时返回位置j上的数据,否则将关键字为K的数据项插入到表中: n := j, KEY[n] := K, DATA[n] := D(K), 有关的两个参量N和n:N为表的容量,n为表中实际存放的记录数量。

  26. 解决低效问题的哈希方法 • 前面的代码有什么缺陷? • 当关键字K未在原表中时,查找效率很低,尤其是表的规模n很大的时候; • 改进低效问题的哈希方法:使用m个独立的小表来替代1张大表。 FIRST[i],小表i中的首记录,1 <= i <= m NEXT[j],记录j在相应小表中的后继,1 <= j <= N 而且 FIRST[i] = -1,小表i为空,1 <= i <= m NEXT[j] = 0,记录j无后继,1 <= j <= N

  27. 哈希函数和改进后的代码 • 哈希函数:函数h在任意关键字K上给出1到m之间的数字作为哈希结果。 • 使用哈希方法改进的代码: H1 Set i := h(K) and j := FIRST[i]. H2 If j <= 0, stop. (查找失败) H3 If KEY[j] = K, stop.(查找成功) H4 Set i := j, then set j := NEXT[i], return to H2.(再来) • 查找失败时将关键字K和新记录插入到表中: n := n + 1; if j < 0 then FISRT[i] := n else NEXT[j] := n; KEY[n] := K; DATA[n] := D(K); NEXT[n] := 0.

  28. 哈希分析:准备工作 • 平均复杂度averaged complexity是在算法在服从某种概率分布的输入数据上的复杂度期望值。 • 哈希方法是分析平均复杂度的很好的案例。 • 记p为步骤H3的执行次数,则各步骤执行次数为 Step 查找失败查找成功 H11次 1次 H2P + 1次 P次 H3P次 P次 H4P次 P – 1次 P是决定整体复杂度的关键量

  29. 哈希分析:准备工作 • 在理想情形下,对任意的关键字K,哈希以相等的概率将其哈希到1~m。 • 对于n条记录来说,每条记录的位置仅依赖于它们的哈希序列 <h1, h2, …, hn> • n条记录的哈希序列<h1, h2, …, hn>总共有mn种可能取值,而且概率均等; • P是定义在哈希序列上的随机变量。

  30. 情形1:关键字K不在表中 • 表中已有n条记录 • 相应的概率空间中的基本事件 ω = (h1, h2, …, hn, hn+1) • hn+1是查找失败的关键字K的哈希值 • 对任意的ω,都有Pr(ω) = 1 / mn+1 • 容易得到两个等式 (1)P = [h1 = hn+1] + [h2 = hn+1] + … + [hn = hn+1]; (2)Pr[hj = hn+1] = 1 / m, 1 <= j <= n

  31. 情形1:关键字K不在表中 • 因此有 EP = E[h1 = hn+1] + E[h2 = hn+1] + … + E[hn = hn+1] • 代入E[h1 = hn+1] = Pr[h1 = hn+1] = 1 / m,有 EP = n / m • 粗略看来,采用哈希后效率提高了m倍 • 若记xj = [hj = hn+1],则xi、xj之间是独立的。由于xj的PGF为 Xj(z) = (m – 1 + z) / m

  32. 情形1:关键字K不在表中 • 因此P的PGF为 P(z) = X1(z) X2(z)… Xn(z) = ((m – 1 + z) / m)n • 显然P服从参数为(n, p = 1 / m)的二项分布,方差为 npq = n(m – 1) / m2 • 当m非常大时,方差近似为n / m,标准差近似为(n / m)0.5

  33. 情形2:关键字K在表中 • 记基本事件为 ω = (h1, h2, …, hn; k) • k为待查找的关键字,对应的哈希值为hk • 因此基本事件的数量为mn·n • 记sj为我们查找第j个关键字的概率,显然 Pr(h1, h2, …, hn; k = hj) = sj / mn • 注意:有些应用倾向于查找首关键字或尾关键字,因此这里并不假定sj= 1 / n

  34. 情形2:关键字K在表中 • 如果K被第p个插入到它所在的小表中,则P = p。因此有 P(h1, …, hn; k) = [h1 = hk] + [h2 = hk] + … + [hk = hk] • 为什么上式加到k而不是n? 蓝:n条记录、m个表 红:前k条记录对应的表 绿:哈希值hk对应的小表中的前p条记录

  35. 情形2:关键字K在表中 • 若记xj = [hj = hk],则 P = x1 + x2 + … + xk • 但是我们不能直接写成EP = Ex1 + Ex2 + … + Exk,因为这里的k是一个不定的量。 • 由于k依赖于待查找的关键字K,因此下面要用条件概率来解决。 • 首先引入条件概率母函数:

  36. 情形2:关键字K在表中 • 对条件概率母函数,容易证明 • 令X = P而Y = K。对任意的1到n之间的k,随机变量P|k被定义为一系列独立随机变量之和x1 + x2 + … + xk,因此其PGF为 z怎么来的?

  37. 情形2:关键字K在表中 • 因此P的PGF为 • 其中 • 显然,S是查找概率sk对应的PGF!

  38. 情形2:关键字K在表中 • 随后使用PGF求解P的均值和方差,得到 • 对于最普通情形sk = 1 / n,代入上式得到

  39. 5th Homework • 练习题(不必上交) 8.12,8.20,8.21,8.57 • 作业(可用中/英文提交,不计入最终分数) Please tell me your opinion on our CMcourse. You’re completely free on any topics interesting you. Thanks.

More Related