调整[0,x)区间上的数出现的概率

【题目】
假设函数Math.random()等概率随机返回一个在[0,1)范围上的数,那么我们知道,在[0,x)区间上的数出现的概率为x(0<x≤1)。给定一个大于0的整数k,并且可以使用Math.random()函数,请实现一个函数依然返回在[0,1)范围上的数,但是在[0,x)区间上的数出现的概率为x的k次方(0<x≤1)。
【思路】
跟coding不太相关的一个问题,对k,调用k次Math.Random函数,返回调用过程中出现的最大的概率值。
【Code】
public static double randXPowerK(int k) {
        if (k < 1) {
            return 0;
        }
        double res = -1;
        for (int i = 0; i != k; i++) {
            res = Math.max(res, Math.random());
        }
        return res;
    }

 

posted @ 2021-04-12 09:58  γGama  阅读(97)  评论(0编辑  收藏  举报