Programming Problems/Probability

p/1-p 함수로 0.5짜리 랜덤 함수 만들기

fw93 2018. 4. 22. 20:22

두개의 동전을 던져서 1 앞, 2 뒤 면 true를 리턴하고 1 뒤 2 앞이면 false를 리턴한다.


둘이 같은게 나왔으면 그냥 다시 한번 굴린다.


그러면 앞뒤 뒤앞은 각각 p*(1-p) 로 확률이 같게 되서 출력되는 기대값은 0.5다!!


while(true)
{
	p1 = rand_bit_p();
	p2 = rand_bit_p();

	if(p1 && (!p2)) return true;   // prob = p * (1-p)
	if((!p1) && p2) return false; // prob = (1-p) * p
}