前言
本文主要介绍如何根据不相等概率[0,1]
设计出相等概率的[0,1]
。
给定一个方法func1
,这个方法返回0
的概率为p
,返回1
的概率为1-p
。
现在要根据func1
这个方法,设计出一个新的方法func2
,该方法返回0和1的概率都为50%
。
func1
代码如下:
public static int func1() {
return Math.random() < 0.7 ? 0 : 1;
}
复制代码
思路解析
先来看一下func1
这个方法,通过这个方法我们可以得出几个信息:
- 方法不可更改,只能被调用。
- 方法只返回
0
和1
,我们并不知道0
和1
的概率是多少。 - 要想办法从
func1
中,得出2个概率相等的数字。
func1
方法中的内容我们不能更改,而且方法里面的 0.7
也有可能是其他的,只知道是固定的,但具体多少也无法得知,只能得到0
和1
。
要设计的func2
方法也是返回0
和1
,但是0
和1
的概率是相同的,都为