这是一个常见的访谈问题,使用随机数生成器生成更大范围的随机数,范围更小。例如,给定一个随机生成0到5之间数字的函数rand5,创建rand7。有一个SO thread为此。
rand5
rand7
我们如何做相反的事情,给rand5创造rand7?
这很简单,在伪代码中:
do { r = rand7 } while r>5 return r;