The La Plata Mountains as seen from above the authorís
            home.


Durango Bill's

Bingo Probabilities


How to Calculate Bingo Probability Statistics
   
(Math notation is generally the same as that used in Microsoft's Excel. The MathNotation link will also give examples of the notation as used here.)

   The key to calculating Bingo statistics is the Single Board Cumulative Probability of getting Bingo on or before the "Nth" number is called. These are the numbers that appear in Column 3 of the statistics table.


First, we will show how to calculate the other columns once you have the Column 3 data.

   For any number of boards (1, 50, or other), the probability of getting a Bingo when the Nth number is called is the difference between the cumulative probability for the Nth number and the (N-1)th number.

   Example - single board (refer to the table): The probability of getting a Bingo when the 20th number is called is the cumulative probability for 20 numbers (0.022874) minus the cumulative probability for 19 numbers (0.017993). The result of 0.022874 minus 0.017993 is the 0.004881 probability that appears in the table.

   Example - 50 boards (again refer to the table): The probability that (at least) one of the 50 boards will get a Bingo when the 20th number is called is the cumulative probability for 20 numbers (0.685574) minus the cumulative probability for 19 numbers (0.596608). The result of 0.685574 minus 0.596608 is the 0.088966 probability that appears in the table.


 How to calculate the Column 5 data

    The Cumulative Probability column for any number of boards can be calculated once the Cumulative Probability for a single board is known. If we let "K" equal the number of boards, and let Cp[N] equal the single board Cumulative Probability after N numbers have been called, then the "K" boards Cumulative Probability after N numbers have been called is:

     1 - ((1 - Cp[N])^K)        (^ is the power function  e.g. 2^3 = 8)

For example: If we have the Single Board Probability after 25 numbers have been called (look up 0.063961 in the table), the 50 board Cumulative Probability after 25 numbers is:

     1 -((1 - 0.063961)^50) =
     1 -(0.936039^50)         =
     1 - 0.036703                = 0.963297    (You can cross check this with the table.)

Note: A precision error will be noticeable when using smaller vales of "N")


Calculating the single board cumulative probability values

   Up to now we have been making easy calculations using the single board Cumulative Probabilities. So where do these numbers come from? Unfortunately this will require some serious computer number crunching. The Single Board Cumulative Probability that at least one Bingo exists given that "N" numbers have been called is the sum of the probabilities for the following conditions:

Of the N numbers called, 4 have been matched on the card, and these 4 have formed a Bingo,
Of the N numbers called, 5 have been matched on the card, and these 5 have formed a Bingo,
Of the N numbers called, 6 have been matched on the card, and these 6 have formed a Bingo, etc.
Of the N numbers called, K have been matched on the card, and these K have formed a Bingo, etc.

   There will be two parts to the calculations. For each of the above lines, we need to know the probability of having K matches out of the N numbers that have been called. We also need to know the probability of having at least one Bingo given that K numbers have hit the board.

Part 1. Calculating the probability of having at least 1 Bingo
given that you have "K" hits on the Bingo Card


(Warning: If you don't like to play with the bits in "C" or "C++" programs, you aren't going to like this.)

   There are 25 cells on a Bingo card that are organized into a 5 x 5 square. The center space is free which leaves 24 spaces that may or may not have been matched in the course of a game. This leaves 2^24 = 16,777,216 different patterns that may or may not have at least 1 Bingo. Each of these is an equally likely pattern. For each of the 16,777,216 of these patterns, we are going to have to count how many spaces are occupied and if the pattern contains a Bingo. For example: there are COMBIN(24,10) = 1,961,256 different ways we can hit 10 different spaces on the Bingo Board. We will have to count how many of these 1,961,256 have at least one Bingo. Then we can divide this count by 1,961,256, which will give us the probability of having a Bingo.

The general algorithm we will use will look like:

For each of the 16,777,216 patterns
   Count the number of Bingo board spaces that have hits (Min = 0    Max = 24)
   Check this pattern to see if it has at least one bingo
   If "Yes" then add one to the count for this number of board hits
Repeat the loop for the next pattern.

   There's a little catch in here. How do you tell a computer how to recognize a "Bingo"? (And you better find an efficient way since we will be doing it 16,777,216 times.)

Let's number the spaces on a Bingo card as follows:

   4   3   2   1   0
   9   8   7   6   5
  13  12   *  11  10
  18  17  16  15  14
  23  22  21  20  19


We have 24 spaces numbered from 0 to 23. We also note that integer numbers in a computer are expressed as binary numbers. The table below compares the first few decimal numbers with their binary
equivalents.

       Decimal                       Binary
           0                            0
           1                            1
           2                           10
           3                           11
  16,777,215      11111111111111111111111  (There are 23 1's)


   Thus, if a computer counts from 0 to 16,777,215 the 0's and 1's in the binary numbers will generate all possible patterns for the bingo card. (Let "1" represent a "Called space" and "0" a not called space). If we use this same rule of applying a "1" for a hit and "0" for no hit, then we could express a Bingo for the first row by using "11111" for 5 hits across the row. Similarly the second row forms a Bingo if we have a pattern of "11111xxxxx". Here, the 1's are positions in 5-9 (We count positions from right to left starting with "0")  while the x's occupy whatever garbage might be in the first row. We can continue this process for all 12 possible Bingo patterns. When we run our computer program, we just compare the 12 patterns with each of the 16,777,215 numbers. If all the 1's in any of the 12 tests have corresponding 1's in the binary number, then we have a Bingo. (In patterns that use the central free space, only four 1's are in the Bingo pattern). The actual computer instruction uses a bitwise "AND" test for the test.

Finally, we can write the computer code.

for (i = 16777215; i; i--) {              /*  Count from 2^24-1 to 1                 */
  NbrBits = 0;                            /*  Will count the number of 1's           */
  j = i;                                  /*  Get a work version of the number       */
  do {                                    /*  Will rotate the number to the right    */
    NbrBits += (j & 1);                   /*  Will add 1 each time a "1" is found    */
    j >>= 1;                              /*  Shift everything for the next test.    */
  }  while(j);                            /*  Repeat until nothing left to look at   */

  for (j = 12; j; j--) {                  /*  Now check the 12 Bingo patterns        */
    if ((i & Bingos[j]) == Bingos[j]) {   /*  If one of the patterns matches         */
      NbrBingos[NbrBits]++;               /*  then increment the count for this      */
      break;                              /*  number of hits.                        */
                                          /*  (Don't have to search further)         */
    }
  }                                       /*  Else check next bingo pattern          */
}                                         /*  Repeat all 16777215 possible patterns. */

We can output the results here and show the probability of having a Bingo given you have "N" hits on your bingo card.

              Number of
Nbr. of hits  Comb.with  Total               Probability there is at
on the card   a Bingo    Combinations        least 1 Bingo(Col.2 / Col.3)
---------------------------------------------------------------
     0           0       COMBIN(24, 0) = 1             0.000000
     1           0       COMBIN(24, 1) = 24            0.000000
     2           0       COMBIN(24, 2) = 276           0.000000
     3           0       COMBIN(24, 3) = 2,024         0.000000
     4           4       COMBIN(24, 4) = 10,626        0.000376
     5          88       COMBIN(24, 5) = 42,504        0.002070
     6         912       COMBIN(24, 6) = 134,596       0.006776
     7       5,928       COMBIN(24, 7) = 346,104       0.017128
     8      27,102       COMBIN(24, 8) = 735,471       0.036850
     9      92,520       COMBIN(24, 9) = 1,307,504     0.070761
    10     244,092       COMBIN(24,10) = 1,961,256     0.124457
    11     507,696       COMBIN(24,11) = 2,496,144     0.203392
    12     841,100       COMBIN(24,12) = 2,704,156     0.311040
    13   1,113,360       COMBIN(24,13) = 2,496,144     0.446032
    14   1,174,620       COMBIN(24,14) = 1,961,256     0.598912
    15     981,424       COMBIN(24,15) = 1,307,504     0.750609
    16     644,445       COMBIN(24,16) = 735,471       0.876234
    17     331,056       COMBIN(24,17) = 346,104       0.956522
    18     133,428       COMBIN(24,18) = 134,596       0.991322
    19      42,480       COMBIN(24,19) = 42,504        0.999435
    20      10,626       COMBIN(24,20) = 10,626        1.000000
    21       2,024       COMBIN(24,21) = 2,024         1.000000
    22         276       COMBIN(24,22) = 276           1.000000
    23          24       COMBIN(24,23) = 24            1.000000
    24           1       COMBIN(24,24) = 1             1.000000


   From here it gets "easier". If we want to find the cumulative probability that we have a Bingo after 10 numbers have been called, we just sum the following:

   The probability that 4 of the 10 numbers are on the card times the probability that these 4 hits form a Bingo, plus the probability that 5 of the 10 numbers are on the card times the probability that these 5 hits form a Bingo, etc. through all 10 numbers are on the card. This comes out to:

COMBIN(24, 4) * COMBIN(51, 6) / COMBIN(75,10) * 0.000376 = 0.000087
COMBIN(24, 5) * COMBIN(51, 5) / COMBIN(75,10) * 0.002070 = 0.000249
COMBIN(24, 6) * COMBIN(51, 4) / COMBIN(75,10) * 0.006776 = 0.000275
COMBIN(24, 7) * COMBIN(51, 3) / COMBIN(75,10) * 0.017128 = 0.000149
COMBIN(24, 8) * COMBIN(51, 2) / COMBIN(75,10) * 0.036850 = 0.000042
COMBIN(24, 9) * COMBIN(51, 1) / COMBIN(75,10) * 0.070761 = 0.000006
COMBIN(24,10)* COMBIN(51, 0) / COMBIN(75,10) * 0.124457 = 0.000000
Total                                                                                                    = 0.000808

(Which is the value shown for the single board cumulative probability after 10 numbers have been called. Calculations for all the other single board cumulative probabilities are similar.)



Return to the Bingo main page

Web page generated via Sea Monkey's Composer
within  a Linux Cinnamon Mint 18 operating system.
(Goodbye Microsoft)