摘要: 问题描述:描述RANDOM(a,b)过程的一种实现,它只调用RANDOM(0,1)。作为a和b的函数,你的程序期望运行时间是多少?这是算法导论上的一道题。这个没有固定答案,看了很多网上的解法之后,总结一下我的想法。首先,random(0,1)是随机的产生0,1两个整数,random(a,b)是随机产生[a,b]之间的整数。随机就是等概率的意思。生成random(a,b)等价于随机生成[0,b-a]内的一个数,然后在加上a就是[a,b]之间的数了。解法一:设k=b-a,假设2的c次方(以下用2^c表示)是第一个大于b-a的2的正整数次方,那么调用random(0,1)c次,产生一个c位的二进制数 阅读全文
posted @ 2013-04-13 22:41 orchid 阅读(3278) 评论(2) 推荐(0) 编辑