Eight men, including Colonel Mustard, sit at a round table, for a modified game of Russian roulette. They are using a six chamber revolver which has been loaded with 5 bullets.
The game begins by one of the men reaching into a hat, and randomly drawing the name of the first player.
If the first player survives his turn, the gun is handed to his adjacent clockwise neighbor, and his name is immediately returned to the hat.
If the first player loses, his name is thrown away, and the men pull from the hat, and choose the name of the next player.
The game is continued in such a way until either all five bullets have fired, OR a player survives his turn, but no longer has an adjacent clockwise neighbor to pass the gun to.
What is the probability that the Colonel will survive the game?
(Note that the chamber is spun every time a player takes his turn).
(In reply to First Thoughts
by Steve Herman)
I put "exact" in scare quotes as the result is only as accurate as double precision floating point allows, in this recursive program that goes through all sequences of shots, keeping track of the overall probability at each point and adding to the respective dead total (1 dead, 2 dead, etc.) when either the bullets run out or a person survives with no next person to whom to pass the revolver.
DECLARE SUB chooseNext ()
DIM SHARED man(7), dead, deadProb(5), bullets, menRemain, currProb
FOR i = 1 TO 7: man(i) = 1: NEXT
dead = 1: bullets = 4: menRemain = 7
currProb = 1
FOR i = 1 TO 5: PRINT USING "##.#####"; deadProb(i); : NEXT: PRINT
t = 0
FOR i = 1 TO 5
t = t + i * deadProb(i)
PRINT t, t / 8#
menBefore = 0
FOR m = 1 TO 7
IF man(m) = 1 THEN
totSubProb = 0
subProb = 1 / menRemain
FOR i = 1 TO menBefore
totSubProb = totSubProb + subProb * ((6# - bullets) / 6#) ^ (menBefore + 1 - i)
pDie = (totSubProb + subProb) * bullets / 6#
dead = dead + 1
currProb = currProb * pDie
man(m) = 0
bullets = bullets - 1
menRemain = menRemain - 1
IF bullets > 0 THEN
deadProb(dead) = deadProb(dead) + currProb
menRemain = menRemain + 1
bullets = bullets + 1
man(m) = 1
currProb = currProb / pDie
dead = dead - 1
' doesn't die:
IF m = 7 THEN cntnu = 0: ELSE IF man(m + 1) = 0 THEN cntnu = 0: ELSE cntnu = 1
IF cntnu = 0 THEN
deadProb(dead) = deadProb(dead) + currProb * (totSubProb + subProb) * (6# - bullets) / 6#
menBefore = menBefore + 1
menBefore = 0
0.07140 0.22491 0.34569 0.27186 0.08614
where the first row shows the respective probabilities of 1 through 5 men being killed, and the next line shows the expected number of dead, and that number divided by 8 to give the probability that a given player will die.
The colonel's probability of survival is approximately 61.544547344574 %.
Posted by Charlie
on 2010-06-09 01:51:32