몇 가지 "트릭"과 약간의 수학을 통해이 문제를 해결할 수 있습니다.
기본 알고리즘은 다음과 같습니다.
- 성공 확률 로 기하 확률 변수를 생성합니다 .p
- 이 랜덤 변수의 결과는 고정 된 알려진 값 합니다.fn∈[0,1]
- 생성 확률 변수 사용하여 공정한 동전 쌍 블록 단위에서 발생 뒤집 것은 우리의 플립 동전.B e r ( p )Ber(fn)Ber(p)
- 결과는 대해 가 될 것입니다. 이것이 우리가 필요한 전부입니다.a ∈ ( 0 , 1 )Ber(pa)a∈(0,1)
더 소화하기 쉽도록 여러 조각으로 나눕니다.
1 조 : 일반성을 잃지 않고 이라고 가정한다 .0<a<1
만약 이라면, 양의 정수 과 대해 를 쓸 수 있습니다 . 그러나 두 개의 독립적 인 Bernoulli의 경우
우리는 생성 할 수 있습니다 확실한 방법으로 우리의 동전에서 베르누이. 따라서 때 생성에만 관심이 필요합니다 .p a = p n p b n 0 ≤ b < 1 P ( X 1 = X 2 = 1 ) = p 1 p 2a≥1pa=pnpbn0≤b<1p n B e r ( p a ) a ∈ ( 0 , 1 )
P(X1=X2=1)=p1p2.
pnBer(pa)a∈(0,1)
조각 2 : 공정한 동전 뒤집기에서 임의의 를 생성하는 방법을 알고 있습니다.Ber(q)
이를 수행하는 표준 방법이 있습니다. 확장 바이너리 확장에 다음 적정 동전이 "일치"의 자리로 뒤집 사용 . 첫 번째 일치는 성공 ( "heads") 또는 실패 ( "tails")를 선언할지 여부를 결정합니다. 경우 하고 동전 던지기가 헤드 선언 헤드이면 하고 경화 플립 꼬리 선언 꼬리이다. 그렇지 않으면, 새로운 동전 뒤집기에 대한 후속 숫자를 고려하십시오.q q n = 1 q n = 0q=0.q1q2q3…qqn=1qn=0
3 조 : 알 수없는 편견을 가진 불공평 한 동전에서 공정한 동전 뒤집기를 만드는 법을 배웁니다.
이것은 코인을 쌍으로 뒤집어서 이라고 가정 합니다. 우리가 를 얻는다면 헤드를 선언하십시오. 를 얻으면 꼬리를 선언하고 그렇지 않으면 위에서 언급 한 두 가지 결과 중 하나가 발생할 때까지 실험을 반복하십시오. 그것들은 똑같이 가능하므로 확률 이어야합니다 .H T T H 1 / 2p∈(0,1)HTTH1/2
조각 4 : 약간의 수학. (구조자에 대한 테일러)
주위의 를 확장함으로써 Taylor의 정리는
참고로 인해 의 후 각 용어는 처음 네거티브 우리가되도록,
은 선험적 으로 알려져 있습니다. 따라서
여기서 , 및p 0 = 1 p a = 1 − a ( 1 − p ) − a ( 1 − a )h(p)=pap0=10 < a < 1 p a = 1 − ∞ ∑ n = 1 b n ( 1 − p ) n
pa=1−a(1−p)−a(1−a)2!(1−p)2−a(1−a)(2−a)3!(1−p)3⋯.
0<a<10 ≤ b n ≤ 1 1 − p a = ∞ ∑ n = 1 b n ( 1 − p ) n = ∞ ∑ n = 1 b n P ( G ≥ n ) = ∞ ∑ n = 1 f n P ( G = n ) = E f ( G ) , Gpa=1−∑n=1∞bn(1−p)n,
0≤bn≤11−pa=∑n=1∞bn(1−p)n=∑n=1∞bnP(G≥n)=∑n=1∞fnP(G=n)=Ef(G),
f 0 = 0 f n = ∑ n k = 1 b k n ≥ 1G∼Geom(p)f0=0fn=∑nk=1bk대 .
n≥1
그리고 우리는 이미 동전을 사용하여 성공 확률 기하 확률 변수를 생성하는 방법을 알고 있습니다 .p
조각 5 : 몬테 카를로 트릭.
하자 값을 가지고 이산 랜덤 변수 일 와 . 보자 . 그런 다음
[ 0 , 1 ] P ( X = x n ) = p n U ∣ X ∼ B e r ( X ) P ( U = 1 ) = ∑ n x n p n .X[0,1]P(X=xn)=pnU∣X∼Ber(X)
P(U=1)=∑nxnpn.
하지만, 복용 및 , 우리가 생성하는 방법을 지금 참조 랜덤 변수 및 이것이 발생 동등 하나입니다.x n = f n B e r ( 1 − p a ) B e r ( p a )pn=p(1−p)nxn=fnBer(1−pa)Ber(pa)