题目描述
如何在只调用RANDOM(0,1)
来实现RANDOM(a, b)
###步骤
- 设 n = b - a
- 找到最小的c 使2^c ≥ n (c = ⌈lgn⌉)
- 调用
RANDOM(0, 1)
函数c次,生成的0,1序列构成一个二进制数r - 如果r大于n重新开始第3步
- 否则返回a+r即可
如何在只调用RANDOM(0,1)
来实现RANDOM(a, b)
###步骤
RANDOM(0, 1)
函数c次,生成的0,1序列构成一个二进制数r转载于:https://my.oschina.net/zhaomengit/blog/377337