标签: algorithm random data-structures
给定一个布尔随机数生成器。如何使用它生成0到n范围内的随机数。
答案 0 :(得分:3)
将数字的位设置为1。假设你使用发电机10次。这将为您提供10次机会,让他们拥有' 0' 0或者' 1'在每一轮。您现在将生成0到1023之间的随机数。
要获得从0到n的随机数,您需要使用生成器lg(n)次(lg = log base 2)。