自己寫的,不清楚對不對,僅供參考,應該還可以優化,有更好的辦法,希望大家留言,謝謝
思路:
第一次返回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(); }