码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-17 08:10:58      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:思路   情况   rate   code   不清楚   调整   public   一个   两种   

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

思路:

第一次返回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(); }

 

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

标签:思路   情况   rate   code   不清楚   调整   public   一个   两种   

原文地址:https://www.cnblogs.com/SpaceKiller/p/12508228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!