Possiamo risolverlo tramite un paio di "trucchi" e un po 'di matematica.
Ecco l'algoritmo di base:
- Generare una variabile casuale geometrica con probabilità di successo .p
- Il risultato di questa variabile casuale determina un valore noto fisso .fn∈[0,1]
- Genera una variabile casuale usando lanci di monete equi generati da lanci accoppiati in senso antiorario della nostra moneta .B e r ( p )Ber(fn)Ber(p)
- Il risultato risultante sarà per qualsiasi , che è tutto ciò di cui abbiamo bisogno.a ∈ ( 0 , 1 )Ber(pa)a∈(0,1)
Per rendere le cose più digeribili, le suddivideremo in pezzi.
Pezzo 1 : Senza perdita di generalità supponiamo che .0<a<1
Se , quindi, possiamo scrivere per un numero intero positivo e un po ' . Ma, per ogni due Bernoulli indipendenti, abbiamo
Possiamo generare un Bernoulli dalla nostra moneta nel modo ovvio. Quindi, dobbiamo preoccuparci solo di generare il quando .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.
pnB e r ( pun')a ∈ ( 0 , 1 )
Pezzo 2 : Sapere come generare un arbitrario da lanci di monete onesti.B e r (q)
C'è un modo standard per farlo. Espandi nella sua espansione binaria e quindi usa i nostri monete equi per "abbinare" le cifre di . La prima corrispondenza determina se dichiariamo un successo ("teste") o un fallimento ("code"). Se e il nostro lancio della moneta è testa, dichiara teste, se e il nostro lancio della moneta è croce, dichiara la coda. Altrimenti, considera la cifra successiva rispetto a un nuovo lancio di una moneta.q q n = 1 q n = 0q= 0. q1q2q3...qqn= 1qn= 0
Pezzo 3 : sapere come generare un lancio della moneta corretto da quelli ingiusti con pregiudizio sconosciuto.
Questo viene fatto, assumendo , lanciando la moneta in coppia. Se otteniamo , dichiariamo un testa; se otteniamo , dichiariamo una coda e altrimenti ripetiamo l'esperimento fino a quando si verifica uno dei due risultati sopra menzionati. Sono ugualmente probabili, quindi devono avere probabilità .H T T H 1 / 2p ∈ ( 0 , 1 )HTTH1 / 2
Pezzo 4 : Alcuni di matematica. (Taylor in soccorso.)
Espandendo intorno a , il teorema di Taylor afferma che
Si noti che poiché ogni termine dopo il primo è negativo, quindi abbiamo
dove sono noti a priori . Quindi
dove , ep 0 = 1 p a = 1 - a ( 1 - p ) - a ( 1 - a )h ( p ) = pun'p0= 10 < a < 1 p a = 1 - ∞ ∑ n = 1 b n ( 1 - p ) n
pun'= 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=1bkper .
n≥1
E sappiamo già come usare la nostra moneta per generare una variabile casuale geometrica con probabilità di successo .p
Pezzo 5 : un trucco di Monte Carlo.
Sia una variabile casuale discreta che assume valori in con . Lascia che . Quindi
[ 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.
Ma, prendendo e , vediamo ora come generare una variabile casuale e questo equivale a generare un uno.x n = f n B e r ( 1 - p a ) B e r ( p apn=p(1−p)nxn=fnBer(1−pa)B e r ( pun')