Si j'ai bien compris, alors le problème est de trouver une distribution de probabilité pour l'instant auquel se termine la première série de ou plusieurs têtes.n
Modifier Les probabilités peuvent être déterminées avec précision et rapidité en utilisant la multiplication matricielle, et il est également possible de calculer analytiquement la moyenne comme et la variance comme σ 2 = 2 n + 2 ( μ - n - 3 ) - μ 2 + 5 μ où μ = μ - + 1μ-= 2n + 1- 1σ2= 2n + 2( μ - n - 3 ) - μ2+ 5 μμ = μ-+ 1, mais il n'y a probablement pas de simple formulaire fermé pour la distribution elle-même. Au-dessus d'un certain nombre de tours de pièces, la distribution est essentiellement une distribution géométrique: il serait logique d'utiliser cette forme pour un plus grand .t
L'évolution dans le temps de la distribution de probabilité dans l'espace d'état peut être modélisée en utilisant une matrice de transition pour états, où n = le nombre de tours de pièces consécutifs. Les états sont les suivants:k=n+2n=
- État , pas de têteH0
- État , i têtes, 1 ≤ i ≤ ( n - 1 )Hii1≤i≤(n−1)
- Indiquer , n têtes ou plusHnn
- Énoncer , n ou plusieurs têtes suivies d'une queueH∗n
Une fois dans l'état vous ne pouvez retourner dans aucun autre état.H∗
Les probabilités de transition d'état pour entrer dans les états sont les suivantes
- Etat : probabilité 1H0 deHi,i=0,…,n-1, c'est-à-dire en incluant lui-même mais pas l'étatHn12Hii=0,…,n−1Hn
- Etat : probabilité 1Hi deHi-112Hi−1
- Etat : probabilité 1Hn deHn-1,Hn, c'est-à-dire de l'état avecn-1têtes et lui-même12Hn−1,Hnn−1
- Etat : probabilité 1H∗ deHnet probabilité 1 deH∗(lui-même)12HnH∗
Ainsi, par exemple, pour , cela donne la matrice de transitionn=4
X=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H0H1H2H3H4H∗H012120000H112012000H212001200H312000120H400001212H∗000001⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
Pour le cas , le vecteur initial de probabilités p est p = ( 1 , 0 , 0 , 0 , 0 , 0 ) . En général, le vecteur initial a
p i = { 1 i = 0 0 i > 0n=4pp=(1,0,0,0,0,0)
pi={10i=0i>0
Le vecteur est la distribution de probabilité dans l' espace pour un temps donné. Le cdf requis est un cdf dans le temps , et est la probabilité d'avoir vu au moins n flips de pièces se terminer au temps t . Il peut être écrit comme ( X t + 1 p ) k , en notant que nous atteignons l'état H ∗ 1 pas de temps après le dernier dans la course de lancers de pièces consécutifs.pnt( Xt + 1p )kH∗
Le pmf requis dans le temps peut être écrit comme . Cependant, numériquement, cela implique de retirer un très petit nombre d'un nombre beaucoup plus grand ( ≈ 1 ) et limite la précision. Par conséquent, dans les calculs, il est préférable de définir X k , k = 0 plutôt que 1. Puis, en écrivant X ′ pour la matrice résultante X ′ = X | X k , k = 0( Xt + 1p )k- ( Xtp )k≈ 1Xk , k= 0X′X′= X| Xk , k= 0, le pmf est . C'est ce qui est implémenté dans le programme R simple ci-dessous, qui fonctionne pour tout n ≥ 2 ,( X′t+1p)kn≥2
n=4
k=n+2
X=matrix(c(rep(1,n),0,0, # first row
rep(c(1,rep(0,k)),n-2), # to half-way thru penultimate row
1,rep(0,k),1,1,rep(0,k-1),1,0), # replace 0 by 2 for cdf
byrow=T,nrow=k)/2
X
t=10000
pt=rep(0,t) # probability at time t
pv=c(1,rep(0,k-1)) # probability vector
for(i in 1:(t+1)) {
#pvk=pv[k]; # if calculating via cdf
pv = X %*% pv;
#pt[i-1]=pv[k]-pvk # if calculating via cdf
pt[i-1]=pv[k] # if calculating pmf
}
m=sum((1:t)*pt)
v=sum((1:t)^2*pt)-m^2
c(m, v)
par(mfrow=c(3,1))
plot(pt[1:100],type="l")
plot(pt[10:110],type="l")
plot(pt[1010:1110],type="l")
Le graphique supérieur montre le pmf entre 0 et 100. Les deux graphiques inférieurs montrent le pmf entre 10 et 110 et également entre 1010 et 1110, illustrant l'auto-similitude et le fait que, comme le dit @Glen_b, la distribution semble pouvoir être approximée par une distribution géométrique après une période de stabilisation.
Il est possible d'étudier ce comportement en utilisant en outre une décomposition de vecteur propre de . Cela montre que pour t suffisamment grand , p t + 1 ≈ c ( n ) p t , où c ( n ) est la solution de l'équation 2 n + 1 c n ( c - 1 ) + 1 = 0 . Cette approximation s'améliore avec l'augmentation de n et est excellente pour tXtpt+1≈c(n)ptc(n)2n+1cn(c−1)+1=0ntdans la plage d'environ 30 à 50, en fonction de la valeur de , comme le montre le graphique d'erreur log ci-dessous pour le calcul de p 100 (couleurs arc-en-ciel, rouge à gauche pour n = 2 ). (En fait, pour des raisons numériques, il serait en fait préférable d'utiliser l'approximation géométrique des probabilités lorsque t est plus grand.)np100n = 2t
Je soupçonne (ed) qu'il pourrait y avoir un formulaire fermé disponible pour la distribution parce que les moyennes et les écarts comme je les ai calculés comme suit
n23456789dixSignifier715316312725551110232047Variance241447363392147206169625344010291204151296
(J'ai dû augmenter le nombre sur l'horizon pour l' t=100000
obtenir, mais le programme a quand même fonctionné pour tous les en moins d'environ 10 secondes.) Les moyens en particulier suivent un schéma très évident; les écarts le sont moins. J'ai résolu un système de transition à 3 états plus simple dans le passé, mais jusqu'à présent, je n'ai pas de chance avec une solution analytique simple à celle-ci. Il y a peut-être une théorie utile que je ne connais pas, par exemple concernant les matrices de transition.n = 2 , … , 10
Edit : après de nombreux faux départs, j'ai trouvé une formule de récurrence. Soit la probabilité d'être dans l'état H i au temps t . Soit q ∗ , t la probabilité cumulée d'être dans l'état H ∗ , c'est-à-dire l'état final, à l'instant t . NBpi , tHjetq∗,tH∗t
- Pour tout , p i , t , 0 ≤ i ≤ n et q ∗ , t sont une distribution de probabilité sur l'espace i , et immédiatement en dessous j'utilise le fait que leurs probabilités s'ajoutent à 1.tpi,t,0≤i≤nq∗,ti
- forment une distribution de probabilité dans le temps t . Plus tard, j'utilise ce fait pour dériver les moyennes et les variances.p∗,tt
La probabilité d'être au premier état au temps , c'est-à-dire sans tête, est donnée par les probabilités de transition des états qui peuvent y revenir à partir du temps t (en utilisant le théorème de la probabilité totale).
p 0 , t + 1t+1t
Mais pour passer de l'étatH0àHn-1 ilfautn-1pas, doncpn-1,t+n-1=1
p0,t+1=12p0,t+12p1,t+…12pn−1,t=12∑i=0n−1pi,t=12(1−pn,t−q∗,t)
H0Hn−1n−1et
pn-1,t+n=1pn−1,t+n−1=12n−1p0,t
Encore une fois par le théorème de la probabilité totale, la probabilité d'être à l'état
Hnà l'instant
t+1est
p n , t + 1pn−1,t+n=12n(1−pn,t−q∗,t)
Hnt+1
et en utilisant le fait que
q∗,t+1-q∗,t=1pn,t+1=12pn,t+12pn−1,t=12pn,t+12n+1(1−pn , t - n- q∗ , t - n)( † )
,
2 q ∗ , t + 2 - 2 q ∗ , t + 1q∗ , t + 1- q∗ , t= 12pn , t⟹pn , t= 2 q∗ , t + 1- 2 q∗ , t
Par conséquent, en changeant
t→t+n,
2q∗,t+n+2-3q∗,t+n+1+q∗,t+n+12 q∗ , t + 2- 2 q∗ , t + 1= q∗ , t + 1- q∗ , t+ 12n + 1( 1 - 2 q∗ , t - n + 1+ q∗ , t - n)
t → t + n2 q∗ , t + n + 2- 3 q∗ , t + n + 1+ q∗ , t + n+ 12nq∗ , t + 1- 12n + 1q∗ , t- 12n + 1= 0
n = 4n = 6n = 6t=1:994;v=2*q[t+8]-3*q[t+7]+q[t+6]+q[t+1]/2**6-q[t]/2**7-1/2**7
Modifier Je ne vois pas où aller pour trouver un formulaire fermé à partir de cette relation de récurrence. Cependant, il est possible d'obtenir un formulaire fermé pour la moyenne.
( † )p∗ , t + 1= 12pn , t
pn , t + 12n + 1( 2 p∗ , t + n + 2- p∗ , t + n + 1) +2 p∗ , t + 1= 12pn , t+ 12n + 1( 1 - pn , t - n- q∗ , t - n)( † )= 1 - q∗ , t
t = 0∞E[ X] = ∑∞x = 0( 1 - F( x ) )p∗,t2n+1∑t=0∞(2p∗,t+n+2−p∗,t+n+1)+2∑t=0∞p∗,t+12n+1(2(1−12n+1)−1)+22n+1=∑t=0∞(1−q∗,t)=μ=μ
H∗
E[X2]=∑∞x=0(2x+1)(1−F(x))
∑t=0∞(2t+1)(2n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,t+1)2∑t=0∞t(2n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,t+1)+μ2n+2(2(μ−(n+2)+12n+1)−(μ−(n+1)))+4(μ−1)+μ2n+2(2(μ−(n+2))−(μ−(n+1)))+5μ2n+2(μ−n−3)+5μ2n+2(μ−n−3)−μ2+5μ=∑t=0∞(2t+1)(1−q∗,t)=σ2+μ2=σ2+μ2=σ2+μ2=σ2+μ2=σ2
Les moyennes et les écarts peuvent facilement être générés par programme. Par exemple, pour vérifier les moyennes et les écarts du tableau ci-dessus, utilisez
n=2:10
m=c(0,2**(n+1))
v=2**(n+2)*(m[n]-n-3) + 5*m[n] - m[n]^2
Enfin, je ne sais pas ce que vous vouliez quand vous avez écrit
quand une queue frappe et brise la séquence de têtes, le décompte recommence à partir du flip suivant.
nn
μ−1μ+1Xk,k,=0X1,k=1H0H∗n=4
H0H1H2H3H4H∗probability0.484848480.242424240.121212120.060606060.060606060.03030303
H∗=1/0.03030303=33=μ+1
Annexe : programme Python utilisé pour générer des probabilités exactes pour n
= nombre de têtes consécutives sur les N
lancers.
import itertools, pylab
def countinlist(n, N):
count = [0] * N
sub = 'h'*n+'t'
for string in itertools.imap(''.join, itertools.product('ht', repeat=N+1)):
f = string.find(sub)
if (f>=0):
f = f + n -1 # don't count t, and index in count from zero
count[f] = count[f] +1
# uncomment the following line to print all matches
# print "found at", f+1, "in", string
return count, 1/float((2**(N+1)))
n = 4
N = 24
counts, probperevent = countinlist(n,N)
probs = [count*probperevent for count in counts]
for i in range(N):
print '{0:2d} {1:.10f}'.format(i+1,probs[i])
pylab.title('Probabilities of getting {0} consecutive heads in {1} tosses'.format(n, N))
pylab.xlabel('toss')
pylab.ylabel('probability')
pylab.plot(range(1,(N+1)), probs, 'o')
pylab.show()