【发布时间】:2019-04-18 02:58:45
【问题描述】:
使用较小范围的随机数生成器生成较大范围的随机数是一个常见的面试问题。例如,给定一个函数 rand5,它随机生成从 0 到 5 的数字,创建 rand7。为此有一个 SO thread。
我们如何做相反的事情,在给定rand7 的情况下创建rand5?
【问题讨论】:
使用较小范围的随机数生成器生成较大范围的随机数是一个常见的面试问题。例如,给定一个函数 rand5,它随机生成从 0 到 5 的数字,创建 rand7。为此有一个 SO thread。
我们如何做相反的事情,在给定rand7 的情况下创建rand5?
【问题讨论】:
很简单,用伪代码:
do {
r = rand7
} while r>5
return r;
【讨论】: