一道随机函数题:由rand5()生成rand7()

题目:已知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

posted @ 2015-10-25 20:32  lasclocker  阅读(866)  评论(0编辑  收藏  举报