给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。

2019-07-03 17:09:27 浏览数 (1)

在网上看到百度拼多多的面试题,下面这道题是一面的笔试题。

题:给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样。

思路:连续调用两次基础随机函数,那么有四种结果:

1、00概率为p*p;

2、11概率为(1-p)*(1-p);

3、10概率为(1-p)*p;

4、01概率为p*(1-p) 可以看到结果3和结果4是概率相等的

代码语言:javascript复制
public class SameProbability {

    /**
     * 生成0的概率为p,生成1的概率为1-p。
     *
     * 生成0 1 概率为p(1-p)
     * 生成1 0概率为(1-p)p
     * 则相等的
     */
    public static int getZeroOrOneSameProbability() {
        Random ra =new Random();
        while (true) {
            int i = ra.nextInt(10);
            int j = ra.nextInt(10);

            if (i == 0 && j == 1) {
                return 1;
            }else if (i == 1 && j == 0) {
                return 0;
            }else{
                continue;
            }
        }
    }

    public static void main(String[] args) {
        int result = getZeroOrOneSameProbability();
        System.out.println(result);
    }

}

0 人点赞