Super Bowl-ing?
Posted: 2026-02-14
I promise I’m not dead. I’ve just been learning Bowling. Now it’s your turn.
So I’ve only gotten my average in bowling up to about 135 which is pretty pathetic all things considered for five years of effort and sleeping in the ball return. But in an attempt to make myself feel better I’ve endeavored to use the only thing I’m actually good at.
That’s right, Semi-Advanced Mathematics
So even though google has gotten worse in the last 5 years you might be able to find though combinatorics fan websites that there are five quintillion, seven hundred and twenty six quadrillion, eight hundred and five, trillion, eight hundred and eighty-three billion, three-hundred and twenty-five million, seven-hundred eighty four thousand, five-hundred and seventy six (5,726,805,883,325,784,576) unique games of bowling. The reasoning is fairly simple, $66^{9} * 241$. There are 66 ways to complete any frame before the final one. It’s not a large number so it’s rather easy to count manually, but for a trick you can you the patern Gauss (apocraphully) noticed as a child to count them. I’ll start you, if the first ball is a 0, then there are 11 different results for the second ball from 0 to a Wombat. If the first was a 1, there are 10 and so on. The familliar equation is $66 = \frac{n(n+1)}{2}; n=11$
The final frame having 241 possibilities is more complicated and lacks an easy closed for solution, but it’s also not that many and can be manually counted if you’d like. But it’s also pretty easy to just figure them out. $11 + 65+ 110 + 55 = 241$
- If there are two strikes, then the final ball has 11 possibilities
- if just the first is a strike then we have $66 - 1$ possibilites, a normal frame without double counting any double strike ball.
- If the first two balls form a spare, then you also get one more ball, 10 non-strikes followed by 11 for a normal ball, 110
- If the final frame has no strikes or spares, we have 66 removing the strikes, so 55.
(I roughly did these calculations but didn’t think about it too hard before coding which is where i ran into a big issue)
So thats pretty neat, but i was referring to the number of different score cards not the number of different points results, that’s only 300. But what I failed to find is what portion of games fall into each of the 300 buckets. I got interested, so we’re doing that.
At the start it’s pretty easy, there’s a 0 point game where you get no points in every frame, so theres 1. You can end a game with 1 point but since that one pin could occur in any of the players 10 frames and on either the first or second ball of any frame that means that there are 20 different ways to get 1 point in bowling.
This process is going to get more and more complicated and bigger until we hit the top scores, where there are only few ways to get points. Starting at 290 there is only one way to get each score up until 300, that being strikes in the previous 12 frames and then whatever points obtained in the final frame.
Everything after this gets miserable lets abandon that, so it’s computer time.
First thing we’ll need is a struct to hold game data.
struct game {
int frames[21];
};
And a function to score the game that i’ll walk though. Due to how scoring works, it’s simpler to start at the end. And it’s actually a good canidate for recursion, so we do that for style. Here’s the signature
void scoreFrame(int * base, int* cur, int strike, int spare, int* total )
As usual with recursion it’s best to start with our base case.
if(base == cur)
{
return;
}
return scoreFrame(base, cur-2, strike, spare, total);
We use the base pointer arguement in the call to check for the start of the array, and then back up a frame with every call and make sure to pass the total along for that sweet tail recursion.
//Strike case
if(cur[0] == 10)
{
ret += strike;
ret += spare;
ret += 10;
strike = spare;
spare = 10;
}
//Spare case
else if(cur[0] + cur[1] == 10)
{
ret += spare;
ret += 10;
strike = cur[1];
spare = cur[0];
}
//Open Case
else {
ret += cur[0] + cur[1];
strike = cur[1];
spare = cur[0];
}
The calculations are fairly simple. Strikes get the passed in strike value as well as the spare, Spares just get the spare and opens get nothing. In all cases we update the strike and spare values to the appropriate values.
From there we make a calling function that sets up the recursion.
int scoreGame2( game& g )
{
return scoreFrame(g.frames,
g.frames + 16,
g.frames[19],
g.frames[18],
g.frames[20] + g.frames[19] + g.frames[18] );
}
We do all the calculations for the final frame here and then kick off the recursion.
The nieve approch at this point is to simply create every possible game, score it, store that in a list. This is not possible within a reasonable amount of time. The problem also has an issue being memoized as it is not possible to precalculate the how we have progressed because the symptom of needing to score strikes requires us to look ahead and while it would be possible to save some calculation time on frames with out strikes, it doesn’t really help. I was able to run this simulation on 3 frames in about .3 seconds. assuming no overhead in growth of time this method would finish running in about 51,000 years. Which if finished at time of writing would mean i began running this sim around the end of the stone age. and would be as old as some of the oldest surviving peices of art created by humans.
Because I want to finish this at some time, we’re going to work backwards from the final frame. This solves the memoization issue from last section. Since the 10th frame cannot score bonus points from spares or strikes, it is an effective base case. Then since every frame before the 10th scores similarly, if ther was a function to apply a frame before the tenth frame, we would be golden. Luckily there is. By tracking the total score as well as the last earliest/latest scores added to the total it is rather trivial to figure out where each score in the 66 different frame outcomes will result when added to paired with a possible previous/later score.
Again, we’ll need a structure to hold the score, but this time memoized. Starting at the 10th frame we’ll store our score in a structure like this.
long score[11][11][301] = {0};
long frame[11][11][11] = {0};
36,421 integers may seem like a lot, and it is but most of it ends up being used. Some of it. The structure is useful. Anyway, the individual elements represent how many ways there are to reach that particular score. The score being the number in the final index, and the first two representing the scores achived on the frame that scored last. Those will be used to calculate points for strikes and spares.
So the idea will be that we’ll start by marking the score array’s with how many ways there are to arrive at that score, and the first and second indexes being the point value of the last two balls.
long frame[last_ball][second_to_last_ball][points_earned] = {0};
Since besides the final frame every previous frame is identical we can combine them in what I’ll refer to as a convolution. The way we will convolve two frame arrays is by applying everywhere in an ordinary frames pattern to the the accumulated frame made up of each previous application. This will look something like this
for()
...
for()
{
results[last_ball_points][second_to_last_ball_points][previous_score + last_ball_points + second_to_last_ball_points] += orinary[][][] * last_frame[][][]
}
Of course we will need to account for strikes and spares in our calculations and make sure to add those points to our index as well. When all is said and done the function looks like this
void convolute( big a[11][11][11], big b[11][11][301], big c[11][11][301] )
{
for(int i1 = 0; i1 < 11; i1++ )
for(int j1 = 0; j1 < 11; j1++ )
for(int k1 = 0; k1 < 11; k1++ )
{
for(int i2 = 0; i2 < 11; i2++ )
for(int j2 = 0; j2 < 11; j2++ )
for(int k2 = 0; k2 < 301; k2++ )
{
if(i1 == 10) //strike
c[10][i2][k2 + k1 + i2 + j2] += b[i2][j2][k2] * a[i1][j1][k1];
else if( k1 == 10) //spare
c[i1][j1][k2 + k1 + i2 ] += b[i2][j2][k2] * a[i1][j1][k1];
else //open
c[i1][j1][k2 + k1] += b[i2][j2][k2] * a[i1][j1][k1];
}
}
}
A few notes, we can check for strike by checking the value of i1 because the x1 indexes are to the currently applying frame and if the first value is 10, the first ball scored 10 points which is a strike. On the other hand we check k1 for spares because k is the index that corresponds to points, and since it is the k on the applying ordinary frame this means that 10 total points were scored which are all spares ( if you ignore strikes, which the first case handles). This algorithm works pretty well. Finishes in 3 seconds on a Le Potato with -O2.
From this point, it’s just a lot of applying, clearing work arrays and swapping. But eventually you will get this beauty.
| Points | Combinations For This Score | Total Combinations | Precentile |
|---|---|---|---|
| 0 | 1 | 1 | 0.000000% |
| 1 | 20 | 21 | 0.000000% |
| 2 | 210 | 231 | 0.000000% |
| 3 | 1540 | 1771 | 0.000000% |
| 4 | 8,855 | 10,626 | 0.000000% |
| 5 | 42,504 | 53,130 | 0.000000% |
| 6 | 177,100 | 230,230 | 0.000000% |
| 7 | 657,800 | 888,030 | 0.000000% |
| 8 | 2,220,075 | 3,108,105 | 0.000000% |
| 9 | 6,906,900 | 10,015,005 | 0.000000% |
| 10 | 20,030,010 | 30,045,015 | 0.000000% |
| 11 | 54,627,084 | 84,672,099 | 0.000000% |
| 12 | 141,116,637 | 225,788,736 | 0.000000% |
| 13 | 347,336,412 | 573,125,148 | 0.000000% |
| 14 | 818,558,424 | 1,391,683,572 | 0.000000% |
| 15 | 1,854,631,380 | 3,246,314,952 | 0.000000% |
| 16 | 4,053,948,342 | 7,300,263,294 | 0.000000% |
| 17 | 8,574,134,256 | 15,874,397,550 | 0.000000% |
| 18 | 17,590,903,116 | 33,465,300,666 | 0.000000% |
| 19 | 35,084,425,512 | 68,549,726,178 | 0.000000% |
| 20 | 68,153,183,370 | 136,702,909,548 | 0.000000% |
| 21 | 129,156,542,039 | 265,859,451,587 | 0.000000% |
| 22 | 239,128,282,128 | 504,987,733,715 | 0.000000% |
| 23 | 433,093,980,298 | 938,081,714,013 | 0.000000% |
| 24 | 768,175,029,950 | 1,706,256,743,963 | 0.000000% |
| 25 | 1,335,679,056,261 | 3,041,935,800,224 | 0.000001% |
| 26 | 2,278,764,308,864 | 5,320,700,109,088 | 0.000001% |
| 27 | 3,817,721,269,708 | 9,138,421,378,796 | 0.000002% |
| 28 | 6,285,424,931,278 | 15,423,846,310,074 | 0.000003% |
| 29 | 10,176,048,813,473 | 25,599,895,123,547 | 0.000004% |
| 30 | 16,210,652,213,304 | 41,810,547,336,851 | 0.000007% |
| 31 | 25,423,690,787,719 | 67,234,238,124,570 | 0.000012% |
| 32 | 39,274,771,758,064 | 106,509,009,882,634 | 0.000019% |
| 33 | 59,789,973,730,461 | 166,298,983,613,095 | 0.000029% |
| 34 | 89,736,657,900,900 | 256,035,641,513,995 | 0.000045% |
| 35 | 132,834,787,033,075 | 388,870,428,547,070 | 0.000068% |
| 36 | 194,006,223,597,572 | 582,876,652,144,642 | 0.000102% |
| 37 | 279,661,205,716,974 | 862,537,857,861,616 | 0.000151% |
| 38 | 398,018,151,390,200 | 1,260,556,009,251,816 | 0.000220% |
| 39 | 559,449,136,091,831 | 1,820,005,145,343,647 | 0.000318% |
| 40 | 776,838,931,567,572 | 2,596,844,076,911,219 | 0.000453% |
| 41 | 1,065,940,588,576,732 | 3,662,784,665,487,951 | 0.000640% |
| 42 | 1,445,705,502,357,343 | 5,108,490,167,845,294 | 0.000892% |
| 43 | 1,938,561,121,705,315 | 7,047,051,289,550,609 | 0.001231% |
| 44 | 2,570,605,432,880,903 | 9,617,656,722,431,512 | 0.001679% |
| 45 | 3,371,684,590,465,908 | 12,989,341,312,897,420 | 0.002268% |
| 46 | 4,375,319,099,346,208 | 17,364,660,412,243,628 | 0.003032% |
| 47 | 5,618,445,228,564,793 | 22,983,105,640,808,421 | 0.004013% |
| 48 | 7,140,942,201,229,333 | 30,124,047,842,037,754 | 0.005260% |
| 49 | 8,984,922,304,030,443 | 39,108,970,146,068,197 | 0.006829% |
| 50 | 11,193,770,355,829,009 | 50,302,740,501,897,206 | 0.008784% |
| 51 | 13,810,930,667,765,157 | 64,113,671,169,662,363 | 0.011195% |
| 52 | 16,878,453,276,117,746 | 80,992,124,445,780,109 | 0.014143% |
| 53 | 20,435,326,129,713,654 | 101,427,450,575,493,763 | 0.017711% |
| 54 | 24,515,635,362,932,954 | 125,943,085,938,426,717 | 0.021992% |
| 55 | 29,146,610,869,639,549 | 155,089,696,808,066,266 | 0.027081% |
| 56 | 34,346,628,376,654,913 | 189,436,325,184,721,179 | 0.033079% |
| 57 | 40,123,251,227,815,383 | 229,559,576,412,536,562 | 0.040085% |
| 58 | 46,471,404,549,689,351 | 276,030,980,962,225,913 | 0.048200% |
| 59 | 53,371,780,703,441,318 | 329,402,761,665,667,231 | 0.057519% |
| 60 | 60,789,577,452,586,487 | 390,192,339,118,253,718 | 0.068134% |
| 61 | 68,673,668,434,334,934 | 458,866,007,552,588,652 | 0.080126% |
| 62 | 76,956,298,564,663,402 | 535,822,306,117,252,054 | 0.093564% |
| 63 | 85,553,384,395,717,227 | 621,375,690,512,969,281 | 0.108503% |
| 64 | 94,365,480,254,213,528 | 715,741,170,767,182,809 | 0.124981% |
| 65 | 103,279,445,170,253,902 | 819,020,615,937,436,711 | 0.143015% |
| 66 | 112,170,812,747,354,087 | 931,191,428,684,790,798 | 0.162602% |
| 67 | 120,906,827,121,834,566 | 1,052,098,255,806,625,364 | 0.183715% |
| 68 | 129,350,064,451,661,348 | 1,181,448,320,258,286,712 | 0.206301% |
| 69 | 137,362,512,979,745,598 | 1,318,810,833,238,032,310 | 0.230287% |
| 70 | 144,809,940,796,620,325 | 1,463,620,774,034,652,635 | 0.255574% |
| 71 | 151,566,341,291,631,624 | 1,615,187,115,326,284,259 | 0.282040% |
| 72 | 157,518,221,668,013,078 | 1,772,705,336,994,297,337 | 0.309545% |
| 73 | 162,568,486,673,578,693 | 1,935,273,823,667,876,030 | 0.337932% |
| 74 | 166,639,683,923,175,378 | 2,101,913,507,591,051,408 | 0.367031% |
| 75 | 169,676,402,232,105,648 | 2,271,589,909,823,157,056 | 0.396659% |
| 76 | 171,646,676,234,883,305 | 2,443,236,586,058,040,361 | 0.426632% |
| 77 | 172,542,309,343,731,946 | 2,615,778,895,401,772,307 | 0.456761% |
| 78 | 172,378,125,687,965,848 | 2,788,157,021,089,738,155 | 0.486861% |
| 79 | 171,190,226,627,438,257 | 2,959,347,247,717,176,412 | 0.516754% |
| 80 | 169,033,430,825,208,027 | 3,128,380,678,542,384,439 | 0.546270% |
| 81 | 165,978,103,316,094,584 | 3,294,358,781,858,479,023 | 0.575252% |
| 82 | 162,106,654,714,921,075 | 3,456,465,436,573,400,098 | 0.603559% |
| 83 | 157,509,948,809,043,576 | 3,613,975,385,382,443,674 | 0.631063% |
| 84 | 152,283,892,386,077,931 | 3,766,259,277,768,521,605 | 0.657654% |
| 85 | 146,526,364,181,517,039 | 3,912,785,641,950,038,644 | 0.683240% |
| 86 | 140,334,651,650,668,803 | 4,053,120,293,600,707,447 | 0.707745% |
| 87 | 133,803,399,444,707,801 | 4,186,923,693,045,415,248 | 0.731110% |
| 88 | 127,023,103,852,577,896 | 4,313,946,796,897,993,144 | 0.753290% |
| 89 | 120,079,021,507,938,035 | 4,434,025,818,405,931,179 | 0.774258% |
| 90 | 113,050,455,155,943,519 | 4,547,076,273,561,874,698 | 0.793999% |
| 91 | 106,010,240,661,754,449 | 4,653,086,514,223,629,147 | 0.812510% |
| 92 | 99,024,411,737,621,323 | 4,752,110,925,961,250,470 | 0.829801% |
| 93 | 92,151,904,402,003,308 | 4,844,262,830,363,253,778 | 0.845893% |
| 94 | 85,444,345,654,857,875 | 4,929,707,176,018,111,653 | 0.860813% |
| 95 | 78,945,863,453,573,001 | 5,008,653,039,471,684,654 | 0.874598% |
| 96 | 72,693,023,944,120,045 | 5,081,346,063,415,804,699 | 0.887291% |
| 97 | 66,714,881,583,314,335 | 5,148,060,944,999,119,034 | 0.898941% |
| 98 | 61,033,240,145,235,763 | 5,209,094,185,144,354,797 | 0.909599% |
| 99 | 55,663,091,133,973,346 | 5,264,757,276,278,328,143 | 0.919318% |
| 100 | 50,613,244,155,051,856 | 5,315,370,520,433,379,999 | 0.928156% |
| 101 | 45,887,089,510,794,122 | 5,361,257,609,944,174,121 | 0.936169% |
| 102 | 41,483,436,078,768,079 | 5,402,741,046,022,942,200 | 0.943413% |
| 103 | 37,397,371,704,961,189 | 5,440,138,417,727,903,389 | 0.949943% |
| 104 | 33,621,048,067,136,846 | 5,473,759,465,795,040,235 | 0.955814% |
| 105 | 30,144,388,614,623,696 | 5,503,903,854,409,663,931 | 0.961077% |
| 106 | 26,955,619,314,626,157 | 5,530,859,473,724,290,088 | 0.965784% |
| 107 | 24,041,709,119,775,647 | 5,554,901,182,844,065,735 | 0.969982% |
| 108 | 21,388,640,692,533,960 | 5,576,289,823,536,599,695 | 0.973717% |
| 109 | 18,981,680,119,465,910 | 5,595,271,503,656,065,605 | 0.977032% |
| 110 | 16,805,547,548,715,206 | 5,612,077,051,204,780,811 | 0.979966% |
| 111 | 14,844,654,231,857,239 | 5,626,921,705,436,638,050 | 0.982558% |
| 112 | 13,083,276,623,221,517 | 5,640,004,982,059,859,567 | 0.984843% |
| 113 | 11,505,812,292,077,067 | 5,651,510,794,351,936,634 | 0.986852% |
| 114 | 10,096,971,927,616,045 | 5,661,607,766,279,552,679 | 0.988615% |
| 115 | 8,842,020,009,154,293 | 5,670,449,786,288,706,972 | 0.990159% |
| 116 | 7,726,929,590,817,265 | 5,678,176,715,879,524,237 | 0.991509% |
| 117 | 6,738,528,470,417,086 | 5,684,915,244,349,941,323 | 0.992685% |
| 118 | 5,864,552,560,171,552 | 5,690,779,796,910,112,875 | 0.993709% |
| 119 | 5,093,653,838,062,639 | 5,695,873,450,748,175,514 | 0.994599% |
| 120 | 4,415,377,510,495,980 | 5,700,288,828,258,671,494 | 0.995370% |
| 121 | 3,820,097,597,373,727 | 5,704,108,925,856,045,221 | 0.996037% |
| 122 | 3,298,981,687,014,508 | 5,707,407,907,543,059,729 | 0.996613% |
| 123 | 2,843,905,747,206,868 | 5,710,251,813,290,266,597 | 0.997109% |
| 124 | 2,447,444,695,948,898 | 5,712,699,257,986,215,495 | 0.997537% |
| 125 | 2,102,793,053,565,659 | 5,714,802,051,039,781,154 | 0.997904% |
| 126 | 1,803,790,254,604,935 | 5,716,605,841,294,386,089 | 0.998219% |
| 127 | 1,544,848,145,184,291 | 5,718,150,689,439,570,380 | 0.998489% |
| 128 | 1,320,992,367,181,792 | 5,719,471,681,806,752,172 | 0.998719% |
| 129 | 1,127,775,864,826,813 | 5,720,599,457,671,578,985 | 0.998916% |
| 130 | 961,294,388,171,457 | 5,721,560,752,059,750,442 | 0.999084% |
| 131 | 818,085,023,387,881 | 5,722,378,837,083,138,323 | 0.999227% |
| 132 | 695,128,788,327,698 | 5,723,073,965,871,466,021 | 0.999348% |
| 133 | 589,753,122,859,383 | 5,723,663,718,994,325,404 | 0.999451% |
| 134 | 499,630,252,931,260 | 5,724,163,349,247,256,664 | 0.999539% |
| 135 | 422,696,870,992,462 | 5,724,586,046,118,249,126 | 0.999612% |
| 136 | 357,151,976,811,922 | 5,724,943,198,095,061,048 | 0.999675% |
| 137 | 301,400,973,036,441 | 5,725,244,599,068,097,489 | 0.999727% |
| 138 | 254,052,574,077,937 | 5,725,498,651,642,175,426 | 0.999772% |
| 139 | 213,889,601,295,347 | 5,725,712,541,243,470,773 | 0.999809% |
| 140 | 179,862,464,456,172 | 5,725,892,403,707,926,945 | 0.999840% |
| 141 | 151,065,169,242,834 | 5,726,043,468,877,169,779 | 0.999867% |
| 142 | 126,722,015,973,414 | 5,726,170,190,893,143,193 | 0.999889% |
| 143 | 106,169,469,752,641 | 5,726,276,360,362,895,834 | 0.999908% |
| 144 | 88,840,622,360,686 | 5,726,365,200,985,256,520 | 0.999923% |
| 145 | 74,252,067,274,687 | 5,726,439,453,052,531,207 | 0.999936% |
| 146 | 61,990,415,093,876 | 5,726,501,443,467,625,083 | 0.999947% |
| 147 | 51,701,385,089,887 | 5,726,553,144,852,714,970 | 0.999956% |
| 148 | 43,082,666,091,665 | 5,726,596,227,518,806,635 | 0.999963% |
| 149 | 35,870,481,552,300 | 5,726,632,098,000,358,935 | 0.999970% |
| 150 | 29,843,343,433,392 | 5,726,661,941,343,792,327 | 0.999975% |
| 151 | 24,808,172,866,872 | 5,726,686,749,516,659,199 | 0.999979% |
| 152 | 20,607,116,162,379 | 5,726,707,356,632,821,578 | 0.999983% |
| 153 | 17,101,443,169,235 | 5,726,724,458,075,990,813 | 0.999986% |
| 154 | 14,181,008,701,762 | 5,726,738,639,084,692,575 | 0.999988% |
| 155 | 11,747,089,496,422 | 5,726,750,386,174,188,997 | 0.999990% |
| 156 | 9,723,545,122,578 | 5,726,760,109,719,311,575 | 0.999992% |
| 157 | 8,040,378,083,433 | 5,726,768,150,097,395,008 | 0.999993% |
| 158 | 6,644,452,641,044 | 5,726,774,794,550,036,052 | 0.999995% |
| 159 | 5,486,702,080,236 | 5,726,780,281,252,116,288 | 0.999996% |
| 160 | 4,529,003,381,568 | 5,726,784,810,255,497,856 | 0.999996% |
| 161 | 3,736,165,201,688 | 5,726,788,546,420,699,544 | 0.999997% |
| 162 | 3,081,105,018,158 | 5,726,791,627,525,717,702 | 0.999998% |
| 163 | 2,539,255,963,377 | 5,726,794,166,781,681,079 | 0.999998% |
| 164 | 2,091,793,858,275 | 5,726,796,258,575,539,354 | 0.999998% |
| 165 | 1,721,930,513,702 | 5,726,797,980,506,053,056 | 0.999999% |
| 166 | 1,416,734,360,140 | 5,726,799,397,240,413,196 | 0.999999% |
| 167 | 1,164,733,232,308 | 5,726,800,561,973,645,504 | 0.999999% |
| 168 | 957,190,045,595 | 5,726,801,519,163,691,099 | 0.999999% |
| 169 | 785,911,852,914 | 5,726,802,305,075,544,013 | 0.999999% |
| 170 | 645,295,369,580 | 5,726,802,950,370,913,593 | 0.999999% |
| 171 | 529,489,941,608 | 5,726,803,479,860,855,201 | 0.999999% |
| 172 | 434,606,120,455 | 5,726,803,914,466,975,656 | 0.999999% |
| 173 | 356,481,490,646 | 5,726,804,270,948,466,302 | 0.999999% |
| 174 | 292,487,050,484 | 5,726,804,563,435,516,786 | 0.999999% |
| 175 | 239,755,303,889 | 5,726,804,803,190,820,675 | 0.999999% |
| 176 | 196,550,315,542 | 5,726,804,999,741,136,217 | 0.999999% |
| 177 | 160,954,253,448 | 5,726,805,160,695,389,665 | 0.999999% |
| 178 | 131,791,387,388 | 5,726,805,292,486,777,053 | 0.999999% |
| 179 | 107,847,709,116 | 5,726,805,400,334,486,169 | 0.999999% |
| 180 | 88,241,591,630 | 5,726,805,488,576,077,799 | 0.999999% |
| 181 | 72,162,948,863 | 5,726,805,560,739,026,662 | 0.999999% |
| 182 | 59,038,079,745 | 5,726,805,619,777,106,407 | 0.999999% |
| 183 | 48,284,335,855 | 5,726,805,668,061,442,262 | 0.999999% |
| 184 | 39,509,743,432 | 5,726,805,707,571,185,694 | 0.999999% |
| 185 | 32,308,399,043 | 5,726,805,739,879,584,737 | 0.999999% |
| 186 | 26,423,428,886 | 5,726,805,766,303,013,623 | 0.999999% |
| 187 | 21,582,203,262 | 5,726,805,787,885,216,885 | 0.999999% |
| 188 | 17,624,621,529 | 5,726,805,805,509,838,414 | 0.999999% |
| 189 | 14,368,737,009 | 5,726,805,819,878,575,423 | 0.999999% |
| 190 | 11,720,626,558 | 5,726,805,831,599,201,981 | 0.999999% |
| 191 | 9,552,812,749 | 5,726,805,841,152,014,730 | 0.999999% |
| 192 | 7,790,240,907 | 5,726,805,848,942,255,637 | 0.999999% |
| 193 | 6,351,933,169 | 5,726,805,855,294,188,806 | 0.999999% |
| 194 | 5,185,250,585 | 5,726,805,860,479,439,391 | 0.999999% |
| 195 | 4,232,118,751 | 5,726,805,864,711,558,142 | 0.999999% |
| 196 | 3,457,204,258 | 5,726,805,868,168,762,400 | 0.999999% |
| 197 | 2,821,392,492 | 5,726,805,870,990,154,892 | 0.999999% |
| 198 | 2,302,090,127 | 5,726,805,873,292,245,019 | 0.999999% |
| 199 | 1,874,802,017 | 5,726,805,875,167,047,036 | 0.999999% |
| 200 | 1,526,313,637 | 5,726,805,876,693,360,673 | 0.999999% |
| 201 | 1,239,515,641 | 5,726,805,877,932,876,314 | 0.999999% |
| 202 | 1,007,719,386 | 5,726,805,878,940,595,700 | 0.999999% |
| 203 | 818,568,928 | 5,726,805,879,759,164,628 | 0.999999% |
| 204 | 666,193,896 | 5,726,805,880,425,358,524 | 0.999999% |
| 205 | 542,061,609 | 5,726,805,880,967,420,133 | 0.999999% |
| 206 | 442,072,320 | 5,726,805,881,409,492,453 | 0.999999% |
| 207 | 360,234,562 | 5,726,805,881,769,727,015 | 0.999999% |
| 208 | 293,886,739 | 5,726,805,882,063,613,754 | 0.999999% |
| 209 | 239,045,260 | 5,726,805,882,302,659,014 | 0.999999% |
| 210 | 194,337,731 | 5,726,805,882,496,996,745 | 0.999999% |
| 211 | 157,306,293 | 5,726,805,882,654,303,038 | 0.999999% |
| 212 | 127,325,163 | 5,726,805,882,781,628,201 | 0.999999% |
| 213 | 102,799,565 | 5,726,805,882,884,427,766 | 0.999999% |
| 214 | 83,194,097 | 5,726,805,882,967,621,863 | 0.999999% |
| 215 | 67,300,605 | 5,726,805,883,034,922,468 | 0.999999% |
| 216 | 54,691,522 | 5,726,805,883,089,613,990 | 0.999999% |
| 217 | 44,477,808 | 5,726,805,883,134,091,798 | 0.999999% |
| 218 | 36,317,458 | 5,726,805,883,170,409,256 | 0.999999% |
| 219 | 29,606,794 | 5,726,805,883,200,016,050 | 0.999999% |
| 220 | 24,117,404 | 5,726,805,883,224,133,454 | 0.999999% |
| 221 | 19,554,213 | 5,726,805,883,243,687,667 | 0.999999% |
| 222 | 15,820,964 | 5,726,805,883,259,508,631 | 0.999999% |
| 223 | 12,736,481 | 5,726,805,883,272,245,112 | 0.999999% |
| 224 | 10,258,846 | 5,726,805,883,282,503,958 | 0.999999% |
| 225 | 8,244,157 | 5,726,805,883,290,748,115 | 0.999999% |
| 226 | 6,659,561 | 5,726,805,883,297,407,676 | 0.999999% |
| 227 | 5,381,526 | 5,726,805,883,302,789,202 | 0.999999% |
| 228 | 4,385,243 | 5,726,805,883,307,174,445 | 0.999999% |
| 229 | 3,576,841 | 5,726,805,883,310,751,286 | 0.999999% |
| 230 | 2,930,385 | 5,726,805,883,313,681,671 | 0.999999% |
| 231 | 2,376,760 | 5,726,805,883,316,058,431 | 0.999999% |
| 232 | 1,924,226 | 5,726,805,883,317,982,657 | 0.999999% |
| 233 | 1,541,327 | 5,726,805,883,319,523,984 | 0.999999% |
| 234 | 1,231,527 | 5,726,805,883,320,755,511 | 0.999999% |
| 235 | 975,760 | 5,726,805,883,321,731,271 | 0.999999% |
| 236 | 777,090 | 5,726,805,883,322,508,361 | 0.999999% |
| 237 | 617,547 | 5,726,805,883,323,125,908 | 0.999999% |
| 238 | 498,228 | 5,726,805,883,323,624,136 | 0.999999% |
| 239 | 404,981 | 5,726,805,883,324,029,117 | 0.999999% |
| 240 | 335,065 | 5,726,805,883,324,364,182 | 0.999999% |
| 241 | 275,998 | 5,726,805,883,324,640,180 | 0.999999% |
| 242 | 226,966 | 5,726,805,883,324,867,146 | 0.999999% |
| 243 | 183,727 | 5,726,805,883,325,050,873 | 0.999999% |
| 244 | 148,442 | 5,726,805,883,325,199,315 | 0.999999% |
| 245 | 117,291 | 5,726,805,883,325,316,606 | 0.999999% |
| 246 | 93,525 | 5,726,805,883,325,410,131 | 0.999999% |
| 247 | 73,010 | 5,726,805,883,325,483,141 | 0.999999% |
| 248 | 57,960 | 5,726,805,883,325,541,101 | 0.999999% |
| 249 | 45,826 | 5,726,805,883,325,586,927 | 0.999999% |
| 250 | 37,965 | 5,726,805,883,325,624,892 | 0.999999% |
| 251 | 31,193 | 5,726,805,883,325,656,085 | 0.999999% |
| 252 | 26,131 | 5,726,805,883,325,682,216 | 0.999999% |
| 253 | 21,406 | 5,726,805,883,325,703,622 | 0.999999% |
| 254 | 17,422 | 5,726,805,883,325,721,044 | 0.999999% |
| 255 | 13,613 | 5,726,805,883,325,734,657 | 0.999999% |
| 256 | 10,696 | 5,726,805,883,325,745,353 | 0.999999% |
| 257 | 7,975 | 5,726,805,883,325,753,328 | 0.999999% |
| 258 | 6,005 | 5,726,805,883,325,759,333 | 0.999999% |
| 259 | 4,374 | 5,726,805,883,325,763,707 | 0.999999% |
| 260 | 3,534 | 5,726,805,883,325,767,241 | 0.999999% |
| 261 | 3,016 | 5,726,805,883,325,770,257 | 0.999999% |
| 262 | 2,635 | 5,726,805,883,325,772,892 | 0.999999% |
| 263 | 2,264 | 5,726,805,883,325,775,156 | 0.999999% |
| 264 | 1,933 | 5,726,805,883,325,777,089 | 0.999999% |
| 265 | 1,603 | 5,726,805,883,325,778,692 | 0.999999% |
| 266 | 1,323 | 5,726,805,883,325,780,015 | 0.999999% |
| 267 | 1,045 | 5,726,805,883,325,781,060 | 0.999999% |
| 268 | 810 | 5,726,805,883,325,781,870 | 0.999999% |
| 269 | 585 | 5,726,805,883,325,782,455 | 0.999999% |
| 270 | 406 | 5,726,805,883,325,782,861 | 0.999999% |
| 271 | 277 | 5,726,805,883,325,783,138 | 0.999999% |
| 272 | 258 | 5,726,805,883,325,783,396 | 0.999999% |
| 273 | 227 | 5,726,805,883,325,783,623 | 0.999999% |
| 274 | 206 | 5,726,805,883,325,783,829 | 0.999999% |
| 275 | 173 | 5,726,805,883,325,784,002 | 0.999999% |
| 276 | 150 | 5,726,805,883,325,784,152 | 0.999999% |
| 277 | 115 | 5,726,805,883,325,784,267 | 0.999999% |
| 278 | 90 | 5,726,805,883,325,784,357 | 0.999999% |
| 279 | 53 | 5,726,805,883,325,784,410 | 0.999999% |
| 280 | 26 | 5,726,805,883,325,784,436 | 0.999999% |
| 281 | 15 | 5,726,805,883,325,784,451 | 0.999999% |
| 282 | 15 | 5,726,805,883,325,784,466 | 0.999999% |
| 283 | 14 | 5,726,805,883,325,784,480 | 0.999999% |
| 284 | 14 | 5,726,805,883,325,784,494 | 0.999999% |
| 285 | 13 | 5,726,805,883,325,784,507 | 0.999999% |
| 286 | 13 | 5,726,805,883,325,784,520 | 0.999999% |
| 287 | 12 | 5,726,805,883,325,784,532 | 0.999999% |
| 288 | 12 | 5,726,805,883,325,784,544 | 0.999999% |
| 289 | 11 | 5,726,805,883,325,784,555 | 0.999999% |
| 290 | 11 | 5,726,805,883,325,784,566 | 0.999999% |
| 291 | 1 | 5,726,805,883,325,784,567 | 0.999999% |
| 292 | 1 | 5,726,805,883,325,784,568 | 0.999999% |
| 293 | 1 | 5,726,805,883,325,784,569 | 0.999999% |
| 294 | 1 | 5,726,805,883,325,784,570 | 0.999999% |
| 295 | 1 | 5,726,805,883,325,784,571 | 0.999999% |
| 296 | 1 | 5,726,805,883,325,784,572 | 0.999999% |
| 297 | 1 | 5,726,805,883,325,784,573 | 0.999999% |
| 298 | 1 | 5,726,805,883,325,784,574 | 0.999999% |
| 299 | 1 | 5,726,805,883,325,784,575 | 0.999999% |
| 300 | 1 | 5,726,805,883,325,784,576 | 1.000000% |
Total Games:5,726,805,883,325,784,576
And there we go. Look at it’s majesty
First, bringing it on back to the beginning. Id like to draw your attention to the precentile for score 135, 0.999612 or in other words I am a top 1% bowler. There is no statistical difference between me and Roy Munson. Pete Webber, Walter Ray Willams Jr, Earl Anthony, who cares? An IEEE double floating point value barely knows the difference between us. Yes, I had to look up bowlers for this bit.
For some analysis with less shtick, I find it pretty interesting that the crossover point for the 50th percentile was at 79. Although it does make sense if you think about it. The highest score you can make with no strikes or splits is 90 so a lot of the scores are going to end up around there. The top score you can make before strikes become required is 190. Anywhere above this you’re required to have strike frames which significantly cuts down on possibilities. While it seems obvious when you think about it, I also think it’s interesting that there’s only one way to reach each of the last 10 frames.