Nếu tôi đã hiểu chính xác, thì vấn đề là tìm phân phối xác suất cho thời điểm mà lần chạy đầu tiên của hoặc nhiều đầu kết thúc.n
Chỉnh sửa Xác suất có thể được xác định chính xác và nhanh chóng bằng cách nhân ma trận và cũng có thể tính toán phân tích trung bình là và phương sai là trong đó , nhưng có lẽ không có dạng đóng đơn giản cho bản phân phối. Trên một số lượng tiền xu nhất định, phân phối thực chất là phân phối hình học: sẽ hợp lý khi sử dụng hình thức này cho lớn hơn .σ 2 = 2 n + 2 ( μ - n - 3 ) - μ 2 + 5 μ μ = μ - + 1 tμ−=2n+1−1σ2=2n+2(μ−n−3)−μ2+5μμ=μ−+1t
Sự phát triển theo thời gian của phân phối xác suất trong không gian trạng thái có thể được mô hình hóa bằng cách sử dụng ma trận chuyển tiếp cho các trạng thái , trong đó số lần lật đồng xu liên tiếp. Các tiểu bang như sau:n =k=n+2n=
- Bang , không có người đứng đầuH0
- Bang , đứng đầu, i 1 ≤ i ≤ ( n - 1 )Hii1≤i≤(n−1)
- Bang , hoặc nhiều người đứng đầu nHnn
- Trạng thái , hoặc nhiều đầu theo sau là đuôi nH∗n
Khi bạn vào trạng thái bạn không thể quay lại bất kỳ trạng thái nào khác.H∗
Xác suất chuyển trạng thái để vào trạng thái như sau
- Trạng thái : xác suất từ , , tức là bao gồm chính nó nhưng không bao gồm trạng thái1H0 Hii=0,Mạnh,n-1Hn12Hii=0,…,n−1Hn
- Trạng thái : xác suất từ1Hi Hi-112Hi−1
- Trạng thái : xác suất từ , tức là từ trạng thái có đầu và chính nó1Hn Hn-1,Hnn-112Hn−1,Hnn−1
- Trạng thái : xác suất từ và xác suất 1 từ (chính nó)1H∗ HnH*12HnH∗
Vì vậy, ví dụ, với , điều này đưa ra ma trận chuyển tiếpn=4
X=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H0H1H2H3H4H∗H012120000H112012000H212001200H312000120H400001212H∗000001⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
Đối với trường hợp , vectơ ban đầu của xác suất là . Nói chung, vectơ ban đầu có
n=4pp=(1,0,0,0,0,0)
pi={10i=0i>0
Vectơ là phân phối xác suất trong không gian cho bất kỳ thời điểm nào. Cdf được yêu cầu là một cdf trong thời gian và là xác suất để thấy ít nhất lần lật đồng xu kết thúc theo thời gian . Nó có thể được viết dưới dạng , lưu ý rằng chúng ta đạt được trạng thái dấu thời gian 1 sau lần cuối cùng trong lần chạy đồng xu liên tiếp.pnt(Xt+1p)kH∗
Thời gian pmf cần thiết có thể được viết là . Tuy nhiên, về mặt số lượng, việc này bao gồm lấy đi một số rất nhỏ từ một số lớn hơn nhiều ( ) và hạn chế độ chính xác. Do đó, trong tính toán, tốt hơn là đặt thay vì 1. Sau đó viết cho ma trận kết quả , pmf là . Đây là những gì được triển khai trong chương trình R đơn giản dưới đây, hoạt động cho mọi ,(Xt+1p)k−(Xtp)k≈1Xk,k=0X′X′=X|Xk,k=0(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")
Biểu đồ phía trên hiển thị pmf trong khoảng từ 0 đến 100. Hai ô dưới hiển thị pmf trong khoảng từ 10 đến 110 và giữa 1010 và 1110, minh họa sự tương tự và thực tế là như @Glen_b nói, phân phối có vẻ như có thể xấp xỉ bởi một phân phối hình học sau một thời gian lắng xuống.
Có thể để điều tra hành vi này tiếp tục sử dụng một phân hủy eigenvector của . Làm như vậy cho thấy rằng đủ lớn , , trong đó là nghiệm của phương trình . Xấp xỉ này trở nên tốt hơn với sự gia tăng và là tuyệt vời cho trong khoảng từ khoảng 30 đến 50, tùy thuộc vào giá trị của , như thể hiện trong cốt truyện của lỗi đăng nhập dưới đây để tính (màu sắc cầu vồng, màu đỏ trên còn lại choXtpt+1≈c(n)ptc(n)2n+1cn(c−1)+1=0ntnp100n=2). (Trong thực tế vì lý do số, sẽ thực sự tốt hơn khi sử dụng xấp xỉ hình học cho xác suất khi lớn hơn.)t
Tôi nghi ngờ (ed) có thể có một hình thức đóng có sẵn để phân phối vì các phương tiện và phương sai như tôi đã tính toán như sau
n2345678910Mean715316312725551110232047Variance241447363392147206169625344010291204151296
(Tôi đã phải tăng số lượng lên đến cuối thời gian t=100000
để có được điều này nhưng chương trình vẫn chạy trong tất cả trong chưa đầy 10 giây.) Phương tiện đặc biệt theo một mô hình rất rõ ràng; phương sai ít như vậy. Tôi đã giải quyết một hệ thống chuyển đổi 3 trạng thái đơn giản hơn trong quá khứ, nhưng cho đến nay tôi không gặp may mắn với một giải pháp phân tích đơn giản cho giải pháp này. Có lẽ có một số lý thuyết hữu ích mà tôi không biết, ví dụ liên quan đến ma trận chuyển tiếp.n=2,…,10
Chỉnh sửa : sau khi bắt đầu sai, tôi đã đưa ra một công thức tái phát. Đặt là xác suất ở trạng thái tại thời điểm . Đặt là xác suất tích lũy ở trạng thái , tức là trạng thái cuối cùng, tại thời điểm . Lưu ýpi,tHitq∗,tH∗t
- Đối với bất kỳ , và là phân phối xác suất trên không gian và ngay lập tức bên dưới tôi sử dụng thực tế là xác suất của chúng thêm vào 1.tpi,t,0≤i≤nq∗,ti
- p∗,t tạo thành phân phối xác suất theo thời gian . Sau đó, tôi sử dụng thực tế này trong việc tạo ra các phương tiện và phương sai.t
Xác suất ở trạng thái đầu tiên tại thời điểm , tức là không có đầu, được đưa ra bởi xác suất chuyển tiếp từ các trạng thái có thể quay trở lại trạng thái đó từ thời điểm (sử dụng định lý tổng xác suất).
Nhưng để đi từ trạng thái đến mất bước, do đó và
Một lần nữa bởi định lý tổng xác suất xác suất của ở trạng tháit+1t
p0,t+1=12p0,t+12p1,t+…12pn−1,t=12∑i=0n−1pi,t=12(1−pn,t−q∗,t)
H0Hn−1n−1pn−1,t+n−1=12n−1p0,tpn−1,t+n=12n(1−pn,t−q∗,t)
Hntại thời điểm là
và sử dụng thực tế là ,
Do đó, thay đổi ,
t+1pn,t+1=12pn,t+12pn−1,t=12pn,t+12n+1(1−pn,t−n−q∗,t−n)(†)
q∗,t+1−q∗,t=12pn,t⟹pn,t=2q∗,t+1−2q∗,t2q∗,t+2−2q∗,t+1=q∗,t+1−q∗,t+12n+1(1−2q∗,t−n+1+q∗,t−n)
t→t+n2q∗,t+n+2−3q∗,t+n+1+q∗,t+n+12nq∗,t+1−12n+1q∗,t−12n+1=0
Công thức lặp lại này kiểm tra các trường hợp và . Ví dụ: một đồ thị của công thức này bằng cách sử dụng cho độ chính xác của đơn hàng máy.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
Chỉnh sửa Tôi không thể thấy nơi để tìm một hình thức đóng từ mối quan hệ lặp lại này. Tuy nhiên, nó là tốt để có được một hình thức đóng cửa cho giá trị trung bình.
Bắt đầu từ và lưu ý rằng ,
Lấy tổng từ đến và áp dụng công thức cho trung bình và lưu ý rằng là một phân phối xác suất cho
(†)p∗,t+1=12pn,t
pn,t+12n+1(2p∗,t+n+2−p∗,t+n+1)+2p∗,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)=μ=μ
Đây là giá trị trung bình để đạt trạng thái ; giá trị trung bình cho sự kết thúc của việc chạy đầu là ít hơn thế này.
H∗
Chỉnh sửa Cách tiếp cận tương tự bằng công thứctừ câu hỏi này mang lại phương sai.
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
Các phương tiện và phương sai có thể dễ dàng được tạo lập trình. Ví dụ: để kiểm tra phương tiện và phương sai từ bảng trên sử dụng
n=2:10
m=c(0,2**(n+1))
v=2**(n+2)*(m[n]-n-3) + 5*m[n] - m[n]^2
Cuối cùng, tôi không chắc bạn muốn gì khi viết
khi một cái đuôi chạm và phá vỡ vệt đầu, số đếm sẽ bắt đầu lại từ lần lật tiếp theo.
Nếu bạn có nghĩa là phân phối xác suất cho lần tiếp theo khi lần chạy đầu tiên của hoặc nhiều đầu kết thúc, thì điểm quan trọng được chứa trong nhận xét này bởi @Glen_b , đó là quá trình bắt đầu lại sau một đuôi (cf vấn đề ban đầu mà bạn có thể nhận được một hoặc nhiều đầu ngay lập tức).nn
Điều này có nghĩa là, ví dụ: thời gian trung bình của sự kiện đầu tiên là , nhưng thời gian trung bình giữa các sự kiện luôn là (phương sai là như nhau). Cũng có thể sử dụng ma trận chuyển tiếp để điều tra xác suất dài hạn của việc ở trong trạng thái sau khi hệ thống đã "ổn định". Để có được ma trận chuyển tiếp phù hợp, hãy đặt và để hệ thống quay lại ngay trạng thái từ trạng thái . Sau đó, trình xác định đầu tiên được chia tỷ lệ của ma trận mới này đưa ra xác suất đứng yên . Với các xác suất đứng yên này làμ−1μ+1Xk,k,=0X1,k=1H0H∗n=4
H0H1H2H3H4H∗probability0.484848480.242424240.121212120.060606060.060606060.03030303
Thời gian dự kiến giữa các trạng thái được đưa ra bởi sự đối ứng của xác suất. Vì vậy, thời gian dự kiến giữa các lượt truy cập vào .
H∗=1/0.03030303=33=μ+1
Phụ lục : Chương trình Python được sử dụng để tạo xác suất chính xác cho n
= số lượng đầu liên tiếp qua các lần N
ném.
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()