Якщо я правильно зрозумів, то проблема полягає у пошуку розподілу ймовірностей на час, на який закінчується перший пробіг з або більше головок.н
Редагування ймовірностей можна точно і швидко визначити за допомогою матричного множення, також можна аналітично обчислити середнє значення як а дисперсію як де , але, мабуть, не існує простої закритої форми для самого розподілу. Над певною кількістю монет перевертає, по суті, розподіл - це геометричний розподіл: було б доцільно використовувати цю форму для більших .σ 2 = 2 n + 2 ( μ - n - 3 ) - μ 2 + 5 μ μ = μ - + 1 tмк-= 2n + 1- 1σ2= 2n + 2( μ - n - 3 ) - μ2+ 5 мкмμ = μ-+ 1т
Еволюція в часі розподілу ймовірностей у просторі станів може бути змодельована за допомогою перехідної матриці для станів, де кількість послідовних переворотів монети. Держави такі:n =k = n + 2n =
- Штат , голови немаєН0
- Стан , голови, i 1 ≤ i ≤ ( n - 1 )Нii1 ≤ i ≤ ( n - 1 )
- Штат , або більше голів nНнн
- Штат , або більше головок з наступним хвостом nН∗н
Як тільки ви перейдете в стан ви не зможете повернутися до жодного з інших штатів.Н∗
Ймовірність переходу в стан потрапити до штатів є наступною
- Стан : ймовірність від , , тобто включаючи себе, але не стан1Н0 Hii=0,…,n-1Hn12Нii = 0 , … , n - 1Нн
- Стан : ймовірність від1Нi Hi-112Нi - 1
- Стан : ймовірність від , тобто від стану з головами та себе1Нн Hn-1,Hnn-112Нn - 1, Ннn - 1
- Стан : ймовірність від та ймовірність 1 від (сама)1Н∗ HnH∗12НнН∗
Так, наприклад, при це дає матрицю переходуn = 4
Х= ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪Н0Н1Н2Н3Н4Н∗Н012120000Н112012000Н212001200Н312000120Н400001212Н∗000001⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
Для випадку початковий вектор ймовірностей дорівнює . Взагалі початковий вектор має
p p = ( 1 , 0 , 0 , 0 , 0 , 0 ) p i = { 1 i = 0 0 i > 0n = 4pp =(1,0,0,0,0,0)
pi= { 10i = 0i > 0
Вектор - розподіл ймовірностей у просторі за будь-який даний час. Необхідний cdf - це cdf у часі , і це ймовірність побачити щонайменше переворотів монети за часом . Його можна записати як , зауваживши, що ми досягаємо стану 1-й часовий крок після останнього під час послідовного перегортання монети. n t ( X t + 1 p ) k H ∗pнт( Xt + 1р )кН∗
Необхідний час pmf можна записати як . Однак чисельно це включає вилучення дуже малої кількості від набагато більшого числа ( ) і обмежує точність. Тому в обчисленнях краще встановити а не 1. Тоді записуючи для отриманої матриці , pmf є . Це те, що реалізовано в простій програмі R нижче, яка працює для будь-якого , ≈ 1 X k , k = 0 X ′ X ′ = X | X k , k = 0 ( X ′ t + 1 p ) k n ≥ 2( Xt + 1р )к- ( Xтр )к≈ 1Хк , к= 0Х'Х'= X| Хк , к= 0( X′ T + 1р )кn ≥ 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")
Верхній графік показує pmf між 0 і 100. Нижній два графіки показують pmf між 10 і 110, а також між 1010 і 1110, ілюструючи подібність і те, що, як говорить @Glen_b, розподіл виглядає таким, яким він може бути наближений геометричним розподілом після періоду відстоювання.
Можна досліджувати таку поведінку в подальшому , використовуючи розкладання власних векторів з . Це показує, що для досить великого , , де є рішенням рівняння . Це наближення стає кращим із збільшенням і є чудовим для в діапазоні приблизно від 30 до 50, залежно від значення , як показано на графіку помилки журналу нижче для обчислення (кольори веселки, червоний на зліва заt p t + 1 ≈ c ( n ) p t c ( n ) 2 n + 1 c n ( c - 1 ) + 1 = 0 n t n p 100 n = 2 tХтpt + 1≈ c ( n ) pтc ( n )2n + 1cн( c - 1 ) + 1 = 0нтнp100n = 2). (Насправді з числових причин було б насправді краще використовувати геометричне наближення для ймовірностей, коли більший.)т
Я підозрюю, що (ред.) Може бути закрита форма, доступна для розповсюдження, оскільки засоби та відхилення, як я їх обчислював, наступним чином
н2345678910Середній71531631272555111023 рік2047 рікВаріантність241447363392147206169625344010291204151296
(Мені довелося збільшити число вгору за часовий горизонт, щоб t=100000
досягти цього, але програма все ще працювала на всі менш ніж за 10 секунд.) Зокрема, засоби дотримуються дуже очевидної схеми; відхилення менш. У минулому я вирішив простішу, 3-державну систему переходу, але поки що мені не пощастило з простим аналітичним рішенням цього. Можливо, є якась корисна теорія, про яку я не знаю, наприклад, що стосується перехідних матриць.n = 2 , … , 10
Редагувати : після безлічі помилкових стартів я придумав формулу рецидиву. Нехай - ймовірність перебування в стані в момент . Нехай - сукупна ймовірність перебування в стані , тобто кінцевий стан, в момент . NB H i t q ∗ , t H ∗ tpя , тНiтq∗ , tН∗т
- Для будь-якого заданого , і - розподіл ймовірностей на простір , і одразу нижче я використовую той факт, що їхні ймовірності додаються до 1.p i , t , 0 ≤ i ≤ n q ∗ , t iтpя , т, 0 ≤ i ≤ nq∗ , ti
- tp∗ , t утворюють розподіл ймовірностей за часом . Пізніше я використовую цей факт у виведенні засобів та відхилень.т
Імовірність перебування в першому стані в момент часу , тобто немає голов, задається ймовірністю переходу зі станів, які можуть повернутися до нього з часу (використовуючи теорему загальної ймовірності).
Але щоб дістатися зі стану до виконує кроків, отже, і
Ще раз теоремою про повну ймовірність вірогідність перебуваючи в станіt p 0 , t + 1t + 1т
p0 , t + 1= 12p0 , т+ 12p1 , т+ … 12pn - 1 , т= 12∑i = 0n - 1pя , т= 12( 1 - сп , т- q∗ , t)
Н0Нn - 1n - 1pn - 1 , t + n - 1= 12n - 1p0 , тpn - 1 , t + n= 12н( 1 - сп , т- q∗ , t)
Ннв момент часу є
і використовуючи той факт, що ,
Отже, змінивши ,
t + 1pn , t + 1= 12pп , т+ 12pn - 1 , т= 12pп , т+ 12n + 1( 1 - сn , t - n- q∗ , t - n)( † )
q∗ , t + 1- q∗ , t= 12pп , т⟹pп , т= 2 q∗ , t + 1- 2 q∗ , t2 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+ 12нq∗ , t + 1- 12n + 1q∗ , t- 12n + 1= 0
Ця формула повторення перевіряє випадки і . Наприклад, для графік цієї формули з використанням дає точність замовлення машини.n = 4н = 6н = 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
Редагувати Я не бачу, куди звернутися, щоб знайти закриту форму з цього відношення. Тим НЕ менше, це можливо , щоб отримати замкнуту форму для середнього.
Починаючи з і відзначаючи, що ,
Взяти суми від до та застосувати формулу для середнього та зазначити, що є розподіл ймовірностей дає
(† )p∗ , t + 1= 12pп , т
pn , t + 12n +1( 2с∗ , t + n +2-с∗ , t + n +1) +2 с∗ , t + 1=12pn ,т+12n + 1( 1 -сn , t -n-q∗ , t - n)( † )= 1 - q∗ , t
t = 0∞Е[X] = ∑∞x = 0( 1 - F( х ) )p∗ , t2n + 1∑t = 0∞( 2 с∗ , t + n + 2- с∗ , t + n + 1) +2 ∑t = 0∞p∗ , t + 12n + 1( 2 ( 1 - 1)2n + 1) -1) +22n + 1= ∑t = 0∞( 1 - q∗ , t)= μ= μ
Це значення для досягнення стану ; середнє значення для кінця прогону голів на одну менше, ніж це.
Н∗
Редагувати Аналогічний підхід, використовуючи формулувід цього питання виходить дисперсія.
Е[ X2] = ∑∞x = 0( 2 х + 1 ) ( 1 - F( х ) )
∑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
Засоби та відхилення можна легко створити програмно. Наприклад, для перевірки засобів та відхилень із таблиці, що застосовується вище
n=2:10
m=c(0,2**(n+1))
v=2**(n+2)*(m[n]-n-3) + 5*m[n] - m[n]^2
Нарешті, я не впевнений, чого ти хотів, коли писав
коли хвостик вдарить і розірве смугу голови, граф почнеться з наступного перевороту.
Якщо ви мали на увазі, що таке розподіл ймовірностей в наступний раз, коли закінчується перший запуск або більше голів, то вирішальний момент міститься в цьому коментарі від @Glen_b , який полягає в тому, що процес починається знову після одного хвоста (див. початкова проблема, коли ви могли негайно отримати пробіг з або більше голів).nn
Це означає, що, наприклад, середній час до першої події становить , але середній час між подіями завжди (дисперсія однакова). Можливо також використовувати перехідну матрицю для дослідження довгострокових ймовірностей перебування в стані після того, як система "оселилася". Для отримання відповідної матриці переходу встановіть і щоб система негайно повернулася у стан зі стану . Тоді масштабований перший власний вектор цієї нової матриці дає стаціонарні ймовірності . При ці стаціонарні ймовірності єμ−1μ+1Xk,k,=0X1,k=1H0H∗n=4
H0H1H2H3H4H∗probability0.484848480.242424240.121212120.060606060.060606060.03030303
Очікуваний час між станами визначається зворотною ймовірністю. Тож очікуваний час між відвідуваннями .
H∗=1/0.03030303=33=μ+1
Додаток : Програма Python, яка використовується для генерування точних ймовірностей для n
= кількості послідовних передач голосів над перекиданнями N
.
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()