题:给一个函数,返回 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是概率相等的
。
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);
}