สมมติว่าเหรียญยุติธรรมถูกโยนซ้ำ ๆ จนกว่าจะได้รับหัวเป็นครั้งแรก
- จำนวนของการโยนที่คาดว่าจะต้องมีเท่าไหร่?
- จำนวนหางที่คาดหวังที่จะได้รับก่อนที่จะได้รับหัวแรกคืออะไร?
สมมติว่าเหรียญยุติธรรมถูกโยนซ้ำ ๆ จนกว่าจะได้รับหัวเป็นครั้งแรก
คำตอบ:
สามารถตอบได้โดยใช้การแจกแจงเชิงเรขาคณิตดังนี้:
จำนวนความล้มเหลวk - 1ก่อนที่จะประสบความสำเร็จครั้งแรก (หัว) ด้วยความน่าจะเป็นของความสำเร็จp ("หัว") จะได้รับจาก:
กับ kเป็นจำนวนทอยรวมถึง 'หัว' แรกที่ยุติการทดสอบ
และคาดว่าค่าตัวของXสำหรับรับหน้าเป็น 2
ความเป็นมาของมูลค่าที่คาดว่าจะสามารถพบได้ที่นี่ ขั้นตอนสุดท้ายที่เหลืออยู่โดยนัยควรเป็นดังนี้:
เพื่อเสียบเข้ากับนิพจน์:
2 ด้วยr=1-pทำให้ง่ายขึ้น
แสดงให้เห็นถึงการใช้งานข้างต้น]
อีกวิธีหนึ่งเราสามารถใช้การแจกแจงทวินามลบที่ตีความว่าเป็นจำนวนความล้มเหลวก่อนที่จะประสบความสำเร็จครั้งแรก ฟังก์ชันมวลความน่าจะเป็นจะได้รับเป็นp (จำนวนความล้มเหลว, n , ก่อนที่จะบรรลุความสำเร็จr | ได้รับความน่าจะเป็นที่แน่นอน p , ของความสำเร็จในการทดลองแต่ละครั้งของเบอร์นูลลี):
ความคาดหวังสำหรับจำนวนการทดลองn + rได้รับจากสูตรทั่วไป:
รับพารามิเตอร์ที่เรารู้จัก: r = 1และp = 0.5 ,
ดังนั้นเราสามารถคาดหวังที่จะทำให้ทั้งสองโยนก่อนที่จะได้รับหัวครั้งแรกกับจำนวนที่คาดหวังของหางเป็น 1
เราสามารถใช้การจำลอง Monte Carlo เพื่อพิสูจน์ได้:
set.seed(1)
p <- 1/2
reps <- 10000 # Total number of simulations.
tosses_to_HEAD <- 0 # Setting up an empty vector to add output to.
for (i in 1:reps) {
head <- 0 # Set the variable 'head' to 0 with every loop.
counter <- 0 # Same forlocal variable 'counter'.
while (head == 0) {
head <- head + rbinom(1, 1, p) # Toss a coin and add to 'head'
counter <- counter + 1 # Add 1 to 'counter'
}
tosses_to_HEAD[i] <- counter # Append number in counter after getting heads.
}
mean(tosses_to_HEAD)
[1] 2.0097
And the expected value of
for a given
is
and how is one supposed to prove that?
Model the game by drawing a ticket out of a box. There are two kinds of tickets. On one is written "Stop, you tossed heads"; on the other is written "Continue, you tossed tails." The expected number of additional tosses in the first case is while the expected number of additional tosses in the second case is , say--we don't know it yet and have to figure it out.
Write these expectations on their respective tickets: these are the values of the tickets.
The three things we do know are:
The chance of drawing a "Stop" ticket (with value ) is .
The chance of drawing a "Continue" ticket (with value ) is .
The expectation of this single draw is, by definition, the sum of the probability-weighted values on all kinds of tickets:
Let us interpret this number: it is the expected number of additional tosses that will be needed until a head appears. Since draws of tickets correspond to coin tosses, adding in the one draw needed to obtain a ticket gives us the expected number of tosses--which is just itself. Equating these two expressions,
Solving for answers the first question. Since the number of tails is always one less than the number of draws, the expected number of tails also must be one less than the expected number of draws. Therefore answers the second question.
A second intuitively clear solution can be obtained by contemplating a very long sequence of tosses. How many games were played? Answer: the number of heads (plus one more incomplete game if the sequence ends with a series of tails). How many heads are expected? Answer: . Call this number . The Weak Law of Large Numbers asserts that the actual number of heads is highly likely to be very close to provided is sufficiently large. Therefore the average game length , given by some number between and , will be arbitrarily close to , whence it must equal itself.
This leads to an extremely efficient way to simulate the distribution of game lengths. Here is R
code. It records "heads" as true values in a boolean array and computes the tosses between successive true values.
p <- 1/3 # Set the chance of heads
tosses <- runif(1e6) < p # Make a million tosses
sim <- diff(c(TRUE, which(tosses))) # Compute game lengths
hist(sim, xlab="Game length", main="Distribution") # Graph their distribution
mean(sim) # Report the average length
When I ran this code after setting the seed to (set.seed(17)
), the output differed from by only a tiny amount.
Let X be the number of coin flips required until a head is obtained. So, we need to calculate E(X) (i.e. expected value of X).
We can condition E(X) on whatever our first flip is. Let E(X|H) denote the number of remaining coin flips given I got a head on the first flip. Similarly, let E(X|T) denote the number of remaining coin flips given I got a tail on the first flip.
By first step conditioning, we have
Now, as denoted the remaining flips after receiving head on the first, it will be equal to 0 as I don't need to flip after getting 1 head.
And, , as we did not make any progress towards getting 1 head.
So,
=>