หากฉันเข้าใจอย่างถูกต้องแล้วปัญหาคือการหาการแจกแจงความน่าจะเป็นในช่วงเวลาที่การเรียกใช้ครั้งแรกของหัวหรือมากกว่าสิ้นสุดลงn
แก้ไขความน่าจะเป็นสามารถกำหนดได้อย่างแม่นยำและรวดเร็วโดยใช้การคูณเมทริกซ์และยังสามารถคำนวณค่าเฉลี่ยเป็นและความแปรปรวนเป็นโดยที่แต่อาจมีรูปแบบปิดไม่ง่ายสำหรับการแจกแจง ดังกล่าวข้างต้นจำนวนหนึ่งของเหรียญพลิกกระจายเป็นหลักกระจายเรขาคณิต: มันจะทำให้ความรู้สึกที่จะใช้แบบฟอร์มนี้สำหรับขนาดใหญ่ทีσ 2 = 2 n + 2 ( μ - n - 3 ) - μ 2 + 5 μ μ = μ - + 1 ตันμ−=2n+1−1σ2=2n+2(μ−n−3)−μ2+5μμ=μ−+1t
วิวัฒนาการในช่วงเวลาของการกระจายความน่าจะเป็นในพื้นที่รัฐสามารถสร้างแบบจำลองโดยใช้เมทริกซ์การเปลี่ยนแปลงสำหรับรัฐโดยที่จำนวนของเหรียญที่ต่อเนื่องกันพลิก รัฐมีดังนี้:n =k=n+2n=
- สถานะไม่มีหัวH0
- สถานะ ,หัวหน้า,ฉัน1 ≤ ฉัน≤ ( n - 1 )Hii1≤i≤(n−1)
- รัฐ ,หรือหัวมากขึ้น nHnn
- รัฐ , หัวหรือมากกว่าตามด้วยหาง nH∗n
เมื่อคุณเข้าสู่สถานะคุณจะไม่สามารถกลับไปสู่สถานะอื่นได้H∗
ความน่าจะเป็นในการเปลี่ยนสถานะเพื่อเข้าสู่รัฐมีดังนี้
- สถานะ : ความน่าจะเป็นจาก , , รวมถึงตัวเอง แต่ไม่ใช่สถานะ1H0 Hii=0,…,n-1Hn12Hii=0,…,n−1Hn
- สถานะ : ความน่าจะเป็นจาก1Hi Hi-112Hi−1
- สถานะ : ความน่าจะเป็นจากคือจากรัฐที่มีหัวและตัวมันเอง1Hn Hn-1,Hnn-112Hn−1,Hnn−1
- สถานะ : ความน่าจะเป็นจากและความน่าจะเป็น 1 จาก (ตัวมันเอง)1H∗ HnH∗12HnH∗
ตัวอย่างเช่นสำหรับนี่จะให้เมทริกซ์การเปลี่ยนแปลงn=4
X=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪H0H1H2H3H4H∗H012120000H112012000H212001200H312000120H400001212H∗000001⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪
สำหรับกรณีที่ , เวกเตอร์เริ่มต้นของความน่าจะเป็นเป็น(1,0,0,0,0,0) โดยทั่วไปเวกเตอร์เริ่มต้นมี
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
vectorคือการแจกแจงความน่าจะเป็นในอวกาศตามเวลาที่กำหนด CDF ต้องเป็น CDF ในเวลาและความน่าจะเป็นของที่ได้เห็นอย่างน้อยเหรียญพลิกสิ้นสุดตามเวลาทีมันสามารถเขียนเป็นโดยสังเกตว่าเรามาถึงสถานะ 1 การเวลาหลังจากครั้งสุดท้ายในการโยนเหรียญติดต่อกัน n t ( X t + 1 p ) k H ∗pnt(Xt+1p)kH∗
PMF ต้องในเวลาที่สามารถเขียนเป็น k อย่างไรก็ตามตัวเลขนี้เกี่ยวข้องกับการเอาจำนวนที่น้อยมากจากจำนวนที่มากขึ้น ( ) และจำกัดความแม่นยำ ดังนั้นในการคำนวณจะเป็นการดีกว่าถ้าตั้งค่ามากกว่า 1 จากนั้นจึงเขียนสำหรับเมทริกซ์ที่ได้จากผลลัพธ์ , pmf คือ k นี่คือสิ่งที่จะดำเนินการในง่าย R โปรแกรมด้านล่างซึ่งทำงานสำหรับการใด ๆ , ≈ 1 X(Xt+1p)k−(Xtp)k≈1 X ′ X ′ =X | X k , k =0( X ′ t + 1 p ) k n≥2Xk,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")
พล็อตด้านบนแสดง pmf ระหว่าง 0 ถึง 100 พล็อตที่สองที่ต่ำกว่าแสดง pmf ระหว่าง 10 และ 110 และระหว่าง 1010 และ 1110 แสดงให้เห็นถึงความคล้ายคลึงกันในตัวเองและความจริงที่ @Glen_b บอกว่าการกระจายดูเหมือนว่า ประมาณโดยการกระจายทางเรขาคณิตหลังจากช่วงเวลาที่ปักหลัก
มันเป็นไปได้ที่จะตรวจสอบพฤติกรรมนี้ต่อไปโดยใช้การสลายตัววิคเตอร์ของXการทำเช่นนี้แสดงให้เห็นว่าสำหรับมีขนาดใหญ่พอ, , ที่คือคำตอบของสมการ 0 การประมาณนี้ดีขึ้นเมื่อเพิ่มและยอดเยี่ยมสำหรับในช่วงจาก 30 ถึง 50 ขึ้นอยู่กับค่าของดังแสดงในพล็อตของข้อผิดพลาดบันทึกด้านล่างสำหรับการคำนวณ (สีรุ้งสีแดงบน เหลือไว้สำหรับt p t + 1 ≈ c ( n ) p t cXtpt+1≈c(n)pt2 n + 1 c n ( c - 1 ) + 1 = 0 n t n p 100 n = 2 tc(n)2n+1cn(c−1)+1=0ntnp100n=2) (อันที่จริงด้วยเหตุผลเชิงตัวเลขจริง ๆ แล้วมันจะดีกว่าที่จะใช้การประมาณทางเรขาคณิตสำหรับความน่าจะเป็นเมื่อมีขนาดใหญ่กว่า)t
ฉันสงสัยว่า (ed) อาจมีรูปแบบปิดสำหรับการแจกจ่ายเนื่องจากค่าเฉลี่ยและความแปรปรวนตามที่ฉันคำนวณได้ดังต่อไปนี้
n2345678910Mean715316312725551110232047Variance241447363392147206169625344010291204151296
(ฉันต้องชนจำนวนขึ้นขอบฟ้าเวลาที่t=100000
จะได้รับนี้ แต่โปรแกรมยังคงวิ่งสำหรับในเวลาน้อยกว่าประมาณ 10 วินาที) หมายถึงโดยเฉพาะตามรูปแบบที่ชัดเจนมาก; ความแตกต่างน้อยดังนั้น ฉันได้แก้ไขระบบการเปลี่ยนสถานะที่เรียบง่ายกว่า 3 รัฐในอดีตที่ผ่านมา แต่จนถึงตอนนี้ฉันไม่มีโชคกับวิธีการวิเคราะห์ที่ง่ายสำหรับระบบนี้ อาจมีทฤษฎีที่มีประโยชน์บางอย่างที่ฉันไม่ทราบเช่นเกี่ยวกับเมทริกซ์การเปลี่ยนแปลงn=2,…,10
แก้ไข : หลังจากการเริ่มต้นผิดพลาดมากมายฉันคิดสูตรการทำซ้ำ ให้เป็นความน่าจะเป็นของการอยู่ในรัฐในเวลาทีให้เป็นความน่าจะเป็นที่สะสมของการอยู่ในรัฐคือรัฐสุดท้ายในเวลาทีNB H ฉัน t q ∗ , t H ∗ tpi,tHitq∗,tH∗t
- สำหรับใดก็ตาม,และคือการแจกแจงความน่าจะเป็นในอวกาศและทันทีที่ฉันใช้ข้อเท็จจริงที่ว่าความน่าจะเป็นของพวกมันเพิ่มเป็น 1p i , t , 0 ≤ i ≤ n q ∗ , t itpi,t,0≤i≤nq∗,ti
- tp∗,tรูปแบบการกระจายความน่าจะเป็นในช่วงเวลาทีต่อมาฉันใช้ข้อเท็จจริงนี้เพื่อหาวิธีและความแปรปรวนt
ความน่าจะเป็นของการอยู่ที่สถานะแรกในเวลาคือไม่มีหัวโดยการเปลี่ยนแปลงความน่าจะเป็นจากรัฐที่สามารถกลับไปที่เวลา (โดยใช้ทฤษฎีบทของความน่าจะเป็นรวม)
แต่ ที่จะได้รับจากรัฐถึงใช้ขั้นตอนดังนั้นและ
อีกครั้งโดยทฤษฎีบทของความน่าจะเป็นทั้งหมด อยู่ที่สถานะt p 0 , t + 1t+1t
p0,t+1=12p0,t+12p1,t+…12pn−1,t=12∑i=0n−1pi,t=12(1−pn,t−q∗,t)
H n - 1 n - 1 p n - 1 , t + n - 1 = 1H0Hn−1n−1pn-1,t+n=1pn−1,t+n−1=12n−1p0,t H n t+1 p n , t + 1pn−1,t+n=12n(1−pn,t−q∗,t)
Hnณ เวลาที่คือ
และ ใช้ข้อเท็จจริงที่ว่า ,
ดังนั้นเปลี่ยน ,
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
การตรวจสอบการเกิดซ้ำสูตรนี้ออกสำหรับกรณีและ 6 เช่นสำหรับพล็อตของสูตรนี้โดยใช้ให้ความแม่นยำในการสั่งซื้อเครื่อง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
แก้ไขฉันไม่สามารถดูตำแหน่งที่จะไปหาแบบฟอร์มปิดจากความสัมพันธ์ที่เกิดซ้ำนี้ อย่างไรก็ตามมันเป็นไปได้ที่จะได้รับแบบฟอร์มปิดสำหรับค่าเฉลี่ย
เริ่มต้นจากและสังเกตว่า ,
รับผลรวมจากถึงและใช้สูตรสำหรับค่าเฉลี่ยและสังเกตว่าคือการแจกแจงความน่าจะเป็น
(†)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)=μ=μ
นี่คือค่าเฉลี่ยสำหรับการเข้าถึงสถานะ ; ค่าเฉลี่ยสำหรับจุดสิ้นสุดของการวิ่งของหัวน้อยกว่านี้
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
วิธีการและความแปรปรวนสามารถสร้างได้อย่างง่ายดายโดยทางโปรแกรม เช่นเพื่อตรวจสอบวิธีการและผลต่างจากตารางข้างต้นใช้งาน
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ซึ่งก็คือกระบวนการเริ่มต้นอีกครั้งหลังจากหางหนึ่ง (cf ปัญหาเริ่มต้นที่คุณสามารถได้รับหัวหรือมากกว่าทันที)nn
ซึ่งหมายความว่าตัวอย่างเช่นเวลาเฉลี่ยของเหตุการณ์แรกคือแต่เวลาเฉลี่ยระหว่างเหตุการณ์มักจะเป็นเสมอ(ความแปรปรวนเหมือนกัน) นอกจากนี้ยังเป็นไปได้ที่จะใช้เมทริกซ์การเปลี่ยนแปลงเพื่อตรวจสอบความน่าจะเป็นในระยะยาวของการอยู่ในสถานะหลังจากที่ระบบ "ตัดสินลง" ที่จะได้รับการเปลี่ยนแปลงเมทริกซ์ที่เหมาะสมตั้งและเพื่อให้ผลตอบแทนจากระบบทันทีไปยังรัฐจากรัฐ * จากนั้นปรับขนาดวิคเตอร์แรกของเมทริกซ์ใหม่นี้จะช่วยให้ความน่าจะนิ่ง ด้วยความน่าจะเป็นแบบคงที่คือμ−1μ+1Xk,k,=0X1,k=1H0H∗n=4
H0H1H2H3H4H∗probability0.484848480.242424240.121212120.060606060.060606060.03030303
เวลาที่คาดหวังระหว่างรัฐจะได้รับจากส่วนกลับของความน่าจะเป็น ดังนั้นครั้งคาดว่าระหว่างการเข้าชม1
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()