- 5.1
-
5.1.1在HIRE-ASSISTANT过程中,若第4行总能决定哪一个应聘者最佳,则意味着我们早知道应聘者的全部次序?为了得到应聘者排名的总次序,只需要调用n次HIRE_ASSISTANT即可;
第一次调用的输入是n个人,得到最佳雇员i,第二次调用的输入是出去雇员i后的n-1个人,然后求出第二最佳雇员;
以此类推,最终求得应聘者排名的全部次序。
-
5.1.2调用RANDOM(0, 1), 实现RANDOM(a, b), 期望运行时间?生成m个bit位(0 or 1), 共有n个数,b-a<=n;
期望运行时间:
n/(b-a). -
5.1.3调用BIASED-RANDOM(0, 1) 0->p, 1->1-p, 实现RANDOM(0, 1), 即p=1/2, 期望运行时间?生成2个bit位(0 or 1), 若为 00 或 11,则舍弃并重新生成;
01 -> p(1-p)
10 -> (1-p)p
期望运行时间:
1/2p(1-p).
-
- 5.2