我们先来看这样一个问题, 已知rand5能等概率产生1, 2, 3, 4, 5, 现要用rand5来实现rand7(rand7的意思是要等概率产生1, 2, 3, 4, 5, 6, 7), 该怎么搞呢...我看了一下网上资料, 很多都是凑出来一个结果, 没有什么过程思路, 我觉得虽然结果正确, 但总感觉所用的技巧性太强。...我们看看rand5 + rand5 行不行。 ...rand5 + rand5 的结果是2, 3, 4, 5, 6, 7, 8, 9, 10, 稍微思考一下, 就知道, 这些数肯定不是等概率的, 比如2的概率要低于5的概率。 所以, 不靠谱。...()
{
return myRandom(5);
}
// 仅由rand5来构造rand7
int rand7()
{
while(1)
{
// 构造等概率的0, 1, 2, 3, 4,