摘要:
问题叙述:*5.1-3 假设你希望以各1/2的概率输出0和1.你可以自由使用一个输出0或1的过程BIASED-RANDOM。它以概率p输出1,以概率1 - p输出0,其中 0 < p < 1,但是你并不知道p的值。给出一个利用BIASED-RANDOM作为子程序的算法,返回一个无偏向的结果,即以概率1/2返回0,以概率1/2返回1。作为p的函数,你的算法的期望运行时间是多少?算法分析: 已知BIASED-RANDOM可产生0和1,那么 1 - BIASED-RANDOM也产生1和0,且以1 - p的概率输出1,以p的概率输出0。 如果我们将1 - BIASED-RANDOM看... 阅读全文
摘要:
问题叙述:*5.1-2 描述RANDOM( a, b )过程的一种实现,它只调用RANDOM( 0, 1 )。作为a和b的函数,你的程序的期望运行时间是多少? 注:RANDOM( a, b )为产生a, a + 1, a + 2, ... , b的函数发生器,且产生各整数的概率相等,同为 1/( b - a + 1 )。例如,RANDOM( 0, 1 )以0.5的概率产生0,1 。算法分析: RANDOM( 0, 1 )产生的结果只有两种可能,即0和1;而RANDOM( a, b )却有b-a+1种可能,二者之间怎么映射成了本问题的关键! 二分思想: 利用RANDOM(... 阅读全文