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

自己写的,不清楚对不对,仅供参考,应该还可以优化,有更好的办法,希望大家留言,谢谢

思路:

第一次返回0,第二次返回1的概率是p*(1-p)
第一次返回1,第二次返回0的概率是(1-p)*p 
00概率是p平方;11概率是(1-p)平方 ,这两种情况导致概率偏差舍弃.

代码如下:

给定的函数方法:index>n; 概率根据n的数字确定;

//假设给定的函数
     public static int generateZeroAndOne() {
            int index=new Random().nextInt(10);
            if(index>3) {
                return 0;
            }
                return 1;
        }

下面是调整概率的代码:

public static int rate() {
      
int b1=generateZeroAndOne(); int b2=generateZeroAndOne(); if (b1==0&&b2==1) { return 0; } else if(b1==1&&b2==0) { return 1; } return rate(); }
原文地址:https://www.cnblogs.com/SpaceKiller/p/12508228.html