The game BINGO! (US and Canada version)is played with a card on which is drawn a 5x5 grid filled with 25 random, non-repeating integers from the range of 1 to 75 inclusive (1 number per grid location). Further constraints are that the left-most column can only contain values from 1 to 15 inclusive, the next left-most column only 16 to 30 inclusive, etc., ending with the 5th (right-most) column only containing 5 random values from the range 61 to 75 inclusive. To play, numbers are "called", one at a time and randomly, with the winner being the first to have all values in any single row, column or diagonal on his/her card "called" (thus, a BINGO!).
Without referring to the many solutions available on the web (BINGO! is very popular):
1) What is the expected value of the number of numbers that must be "called" to reach a BINGO! on a single card?
2) What if you are allowed to play 5 cards (presumably all different)?
Also, usually the center square of the grid is "free", i.e. it is assumed to be called already at the beginning of the game.
3) What are the resulting values for Questions 1) and 2) in this case?
Extra hard bonus:
There are many many variations of the game that allow changes to the pattern of numbers/grid spaces that must be "called" to reach a BINGO! A "+" and an "X" are two of these. Both require 8 numbers to be called, assuming there is a free space in the middle. What are the expected values of the number of numbers "called" for each of these?
The author admits that computer solutions are very viable to solve this problem, but BINGO! existed long before computers. Any analytical attempts/solutions get bonus points!
The logic below is easier to understand as it is more direct. It is not based on my previous program and is independent in that regard. It uses the random number generator differently (giving random numbers to each card, not just cards 2 - 5) and uses numbers 1-75 categorized by column rather than reusing 1-15 over the 5 columns. And its results still agree with those of the first program.
It also extends the results to the use of 10 cards.
DEFDBL A-Z
RANDOMIZE TIMER
CLS
FOR noOfCards = 0 TO 10 STEP 5
FOR freespace = 0 TO 1
IF noOfCards = 0 THEN cards = 1: ELSE cards = noOfCards
totct = 0: tottr = 0
FOR trial = 1 TO 10000000
REDIM bd(cards, 5, 5)
REDIM coord(cards, 75, 1), used(75)
FOR crd = 1 TO cards
FOR row = 1 TO 5
FOR col = 1 TO 5
r = INT(RND(1) * 15 + 1) + 15 * (col - 1)
WHILE coord(crd, r, 0) > 0
r = INT(RND(1) * 15 + 1) + 15 * (col - 1)
WEND
coord(crd, r, 0) = row
coord(crd, r, 1) = col
NEXT
NEXT
NEXT crd
bingo = 0
ct = 0
FOR crd = 1 TO cards
bd(crd, 3, 3) = freespace
NEXT
WHILE bingo = 0
r = INT(RND(1) * 75 + 1)
WHILE used(r) = 1
r = INT(RND(1) * 75 + 1)
WEND
ct = ct + 1
used(r) = 1
FOR crd = 1 TO cards
IF coord(crd, r, 0) > 0 THEN
row = coord(crd, r, 0): col = coord(crd, r, 1)
bd(crd, row, col) = 1
good = 0
brk = 0
FOR rw = 1 TO 5
IF bd(crd, rw, col) = 0 THEN brk = 1: EXIT FOR
NEXT
IF brk = 0 THEN
good = 1
ELSE
brk = 0
FOR cl = 1 TO 5
IF bd(crd, row, cl) = 0 THEN brk = 1: EXIT FOR
NEXT
IF brk = 0 THEN
good = 1
ELSE
brk = 0
IF row = col THEN
FOR rw = 1 TO 5
IF bd(crd, rw, rw) = 0 THEN brk = 1: EXIT FOR
NEXT
IF brk = 0 THEN
good = 1
ELSEIF row = 6 - col THEN
brk = 0
FOR rw = 1 TO 5
IF bd(crd, 6 - rw, rw) = 0 THEN brk = 1: EXIT FOR
NEXT
IF brk = 0 THEN good = 1
END IF
END IF
END IF
END IF
IF good THEN
totct = totct + ct: tottr = tottr + 1
PRINT ct; tottr,
PRINT totct / tottr
bingo = 1: EXIT FOR
END IF
END IF
NEXT
WEND
NEXT trial
OPEN "bingo results.txt" FOR APPEND AS #2
PRINT #2, "Cards:"; cards; " Freespace:"; freespace, totct; "/"; tottr; "="; totct / tottr
CLOSE 2
NEXT freespace
NEXT noOfCards
total calls / trials
Cards: 1 Freespace: 0 439751937 / 10000000 = 43.9751937
Cards: 1 Freespace: 1 422267697 / 10000000 = 42.2267697
Cards: 5 Freespace: 0 326638565 / 10000000 = 32.6638565
Cards: 5 Freespace: 1 304715419 / 10000000 = 30.4715419
Cards: 10 Freespace: 0 287892992 / 10000000 = 28.7892992
Cards: 10 Freespace: 1 264207990 / 10000000 = 26.420799
That is:
43.98 (1 card, no free space)
42.23 (1 card, free space)
32.66 (5 cards, no free space)
30.47 (5 cards, free space)
28.79 (10 cards, no free space)
26.42 (10 cards, free space)
Edited on March 8, 2013, 12:08 pm
|
Posted by Charlie
on 2013-03-08 12:03:14 |