【算法导论第五章】课后习题解析
2015-08-02 17:52
162 查看
---恢复内容开始---
5.1-1证明:假设在程序HIRE-ASSISTANT的第4行中,我们总是能够决定哪一个应聘者最佳,则意味着我们知道应聘者排名的总次序
既然我们总是能够决定哪一个应聘者最佳,想必我们已经对应聘者进行比较了,既然已经进行比较,排序就不应是个问题,既然可以进行排序,总次序也就可以知道了
5.1-2描述RANDOM(a,b)过程的一种实现,它只调用RANDOM(0,1)。作为a和b的函数,你的程序的期望运行时间是多少?
没看懂,不会做
5.2-1
分析:
由5.1节中概率分析最后一段,可以的得出n位应聘者,有n!排序方式。正好雇佣一次的,也就是意味着第一位必须是最优秀的,其他位数随意排列,此时排列方式共有(n-1)!
此时的概率P = (n-1)!/n! = 1/n;
正好雇佣n次,也就是要求排列顺序必须以严格遵循递增,此时共有1种排列法,故这种情况的概率p = 1/n!
5.2-2
分析:
首先共识第一位面试者必然会被雇佣,若恰好雇佣两次,则应该满足以下两个条件:
(1).在第二位面试者被雇佣之前,不能出现比第一位最优秀的的面试人员。
(2).第一位面试者绝不是最优,否者只会有一次雇佣者。
设Ei表示1号应聘者被雇用的情况,其random为i,则对于任意给定的i,有P[Ei]=1/n,j代表最优应聘者,F表示2、3、...、j-1号应聘者的rank比1号助理低的情况P[F|Ei] = 1/(n-i)。则有刚好雇用两次的情况概率P = (1/n)∑1/(n-i)。
5.2-3
分析:
每次抛骰子的期望值E(X) = 1/6*(1+2+3+4+5+6) = 21/6;
则n次抛骰子的期望值∑E = 7n/2。
5.2-4
分析:
假设该事件为事件A,则P(A) = 1/n
期望E(A) = n*P(A) = 1
5.2-5
分析:
可以将问题转换成平面选点的问题,令i为横坐标,j为纵坐标,则j>i的概率P(j>i) = (n-1)/2n,又因为数组a为均匀分布,a[i]>a[j]的概率1/2,此时i<j且a[i]>a[j]的概率为
(n-1)/4n,则期望E = n*n*(n-1)/4n = n(n-1)/4。
5.4-1
---恢复内容结束---
5.1-1证明:假设在程序HIRE-ASSISTANT的第4行中,我们总是能够决定哪一个应聘者最佳,则意味着我们知道应聘者排名的总次序
既然我们总是能够决定哪一个应聘者最佳,想必我们已经对应聘者进行比较了,既然已经进行比较,排序就不应是个问题,既然可以进行排序,总次序也就可以知道了
5.1-2描述RANDOM(a,b)过程的一种实现,它只调用RANDOM(0,1)。作为a和b的函数,你的程序的期望运行时间是多少?
没看懂,不会做
5.2-1
分析:
由5.1节中概率分析最后一段,可以的得出n位应聘者,有n!排序方式。正好雇佣一次的,也就是意味着第一位必须是最优秀的,其他位数随意排列,此时排列方式共有(n-1)!
此时的概率P = (n-1)!/n! = 1/n;
正好雇佣n次,也就是要求排列顺序必须以严格遵循递增,此时共有1种排列法,故这种情况的概率p = 1/n!
5.2-2
分析:
首先共识第一位面试者必然会被雇佣,若恰好雇佣两次,则应该满足以下两个条件:
(1).在第二位面试者被雇佣之前,不能出现比第一位最优秀的的面试人员。
(2).第一位面试者绝不是最优,否者只会有一次雇佣者。
设Ei表示1号应聘者被雇用的情况,其random为i,则对于任意给定的i,有P[Ei]=1/n,j代表最优应聘者,F表示2、3、...、j-1号应聘者的rank比1号助理低的情况P[F|Ei] = 1/(n-i)。则有刚好雇用两次的情况概率P = (1/n)∑1/(n-i)。
5.2-3
分析:
每次抛骰子的期望值E(X) = 1/6*(1+2+3+4+5+6) = 21/6;
则n次抛骰子的期望值∑E = 7n/2。
5.2-4
分析:
假设该事件为事件A,则P(A) = 1/n
期望E(A) = n*P(A) = 1
5.2-5
分析:
可以将问题转换成平面选点的问题,令i为横坐标,j为纵坐标,则j>i的概率P(j>i) = (n-1)/2n,又因为数组a为均匀分布,a[i]>a[j]的概率1/2,此时i<j且a[i]>a[j]的概率为
(n-1)/4n,则期望E = n*n*(n-1)/4n = n(n-1)/4。
5.4-1
---恢复内容结束---
相关文章推荐
- HDU 1016 Prime Ring Problem
- MSSQL数据库导入导出大全二(SQL语句)
- LAMP结合NFS完成小型博客站点建设
- 因为权限原因要在filter里使用spring- service所产生的问题
- LeetCode-- Construct Binary Tree from Preorder and Inorder Traversal
- typename typelink typeurl 和各种link
- /*用C#求一个数,它的九倍是它的反序数*/
- ssh无密码登陆
- 最长回文子序列的java解法
- svn如何提交.so文件
- Length of Last Word
- HDU 1878.欧拉回路【欧拉路及欧拉回路初接触】【8月2】
- Visual Assist X的用法
- Linux内核和驱动编译常见问题
- sql入门
- wxPython中按钮、文本控件的简单运用
- 利用tomcat解决get提交中文乱码问题
- 如何在C++中实现java final标识的类的功能
- 黑马程序员-多线程基础知识2
- java 实现socket基于TCP的多线程多机交互