All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Probability
BINGO! (Posted on 2013-03-07) Difficulty: 3 of 5
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!

No Solution Yet Submitted by Kenny M    
Rating: 4.0000 (1 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution different program -- agrees with previous results | Comment 2 of 4 |

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

Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (14)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information