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

Posted 无羡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给一个函数,返回 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(); }

 

以上是关于给一个函数,返回 0 和 1,概率为 p 和 1-p,请你实现一个函数,使得返回 01 概率一样的主要内容,如果未能解决你的问题,请参考以下文章

2018 年,去百度面试 Java 后端的一次面试经历

ZT等概率随机函数问题

文心一言 VS 讯飞星火 VS chatgpt (28)-- 算法导论5.1 3题

常用的概率分布:二项式分布,贝塔分布,狄里克雷分布

leetcode 528. Random Pick with Weight

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