题目:已知rand5()函数能随机等概率的生成0, 1, 2, 3, 4,利用rand5()函数编写一个rand7()函数实现相似的功能。
分析:其实就是利用rand5()组合成一个更大范围的数,之后利用求余(%)再映射到0-6之间。
Java代码:
int rand7() { //已知rand5()产生0,1,2,3,4,求rand7() int a; do { a = 5*rand5() + rand5(); //产生0-24 } while (a > 20); //只取0-20 return a%7; }
参考自:http://www.cnblogs.com/dwdxdy/archive/2012/07/28/2613135.html