This Forum and Equations

Respect the pool grid
40 area sections
all 10 in each section, 40 ways
(further study reduce for mirror images)

Notation: 10 balls in 1 section only 10 ways.
2 balls in 1 section or 2 balls in 2 sections

9 in 1 and 1 in 9, 81 ways
8 in 1 and 2 in 1 or 2 in 2,
7 in 1 and ... 3 in 1 or 3 in 2 or 3 in 3
...

If you finish the calculation you can say we collaborated. Its a math problem solved by student T.
I like where you are going with here It is what i see as a dynamic programming method except I think its overcomplicated for a problem where an accurate approximation is definitely possible using a non-iterative general formula. It would need to be reduced to an algorithm and then run by a computer to make it useful.

So basically you divide the table up into sections then find all the possible layouts a section with a varying amount of balls you have to brute force summation for all permutations of each variation of each section on the pool table You also need to perform some handling for edge cases where a ball is in both sections to make it work exactly. I suppose this can be performed by calculating some half sections and overlap them over the edges of the sections or something to that regard.

Anyways, its definitely a good way to reduce the problem size (dynamic programming) to make it more feasable for exact calculation by a computer than a pure brute force approach although I believe a similar number can be attained by just making a general formula approximation where the number of ball positions is sufficiently high.

Because of the over-counting due to overlap when making the ball positions sufficiently high using the other formulas previously presented here I think a compensation could be made to reduce the approximation according to the random probability of ball overlap or something to this effect.

The mirroring due to table symmetry overcounting isn't a problem you just divide the number of ball positions by 4.

The mirroring due to congruent ball layouts overcounting problem ( ie: 8 balls end up in perfect symetetry with 2 balls in each quadrant of the table and the remaining 2 balls either on the dividing line between the quadrant or in the center or in a quadrant and in the exact mirroring position to an adjacent or opposite quadrant...there are other possible layouts that fit this type of layout as well) is not as simple: This is a much harder problem to compensate for. I suppose someone would need to figure out the probability of this occuring then reduce by this probability. I can't see how to calculate the probability of this happening off the top of my head as its not simple. I'm sure someone much smarter than me would though.
 
Last edited:
I like where you are going with here It is what i see as a dynamic programming method except I think its overcomplicated for a problem where an accurate approximation is definitely possible using a non-iterative general formula. It would need to be reduced to an algorithm and then run by a computer to make it useful.

So basically you divide the table up into sections then find all the possible layouts a section with a varying amount of balls you have to brute force summation for all permutations of each variation of each section on the pool table You also need to perform some handling for edge cases where a ball is in both sections to make it work exactly. I suppose this can be performed by calculating some half sections and overlap them over the edges of the sections or something to that regard.

Anyways, its definitely a good way to reduce the problem size (dynamic programming) to make it more feasable for exact calculation by a computer than a pure brute force approach although I believe a similar number can be attained by just making a general formula approximation where the number of ball positions is sufficiently high.

Because of the over-counting due to overlap when making the ball positions sufficiently high using the other formulas previously presented here I think a compensation could be made to reduce the approximation according to the random probability of ball overlap or something to this effect.

The mirroring due to table symmetry overcounting isn't a problem you just divide the number of ball positions by 4.

The mirroring due to congruent ball layouts overcounting problem ( ie: 8 balls end up in perfect symetetry with 2 balls in each quadrant of the table and the remaining 2 balls either on the dividing line between the quadrant or in the center or in a quadrant and in the exact mirroring position to an adjacent or opposite quadrant...there are other possible layouts that fit this type of layout as well) is not as simple: This is a much harder problem to compensate for. I suppose someone would need to figure out the probability of this occuring then reduce by this probability. I can't see how to calculate the probability of this happening off the top of my head as its not simple. I'm sure someone much smarter than me would though.

Your response scores pretty high on the math skills in counting. In terms of progress on the problem your key statement is "dynamic programming." Maybe counting out all configurations when all 9 balls are connected and 1 is not is a better start. This way there is some clear definition on different configurations.

The question posed in simpler terms from the OP is: How many ways can 9 balls be connected? How many ways can 1 ball not be connected?

My previous post had some glaring errors, I doubt it will go noticed.
 
Your response scores pretty high on the math skills in counting. In terms of progress on the problem your key statement is "dynamic programming." Maybe counting out all configurations when all 9 balls are connected and 1 is not is a better start. This way there is some clear definition on different configurations.

The question posed in simpler terms from the OP is: How many ways can 9 balls be connected? How many ways can 1 ball not be connected?

My previous post had some glaring errors, I doubt it will go noticed.
You can place 6 balls around a single ball (7-ball flower rack), so each additional ball takes up 360/6=60 degrees of a ball. But when you add each additional ball there is also 360 degrees added but because it is attached to another ball so it is actually 360-60=300 additional degrees degrees, and the previous ball now also has 300 free degrees for further attachment. So if you assume each ball adds another 300 degrees of freedom, and assuming you want to try to connect a ball at single degree (1 degree) available for each ball that is added.

For example the progression looks like:
1(360)-1(60)
2(360)-2(60)
3(360)-3(60)
...
x(360-60)
=x*300


So for each additional ball you add 300 degrees of freedom to add another ball.

Now how do we permutate this? We draw a tree with 300 branches for each node (ball) and its clearly grows exponentially so you get a general formula of 300^n where n is the number of balls or for 9 connected balls 300^9 possible combinations. This obviously an overcalculation due to the fact each additional ball won't always add 300 degrees of freedom, and sometimes an additional ball will remove more than 60 degrees of freedom from the previous balls, but a lot if not most of the time it will, so it is not entirely unrealistic.

So how big is 300^9?:

256^9=(2^8)^9=2^72 < 300^9 < 512^9=(2^9)^9=2^81

So there are between 2^72 and 2^81 possible (potential) non-numbered ball combinations (if you vary the added balls by 1 degree) It is actually closer to 2^72 than 2^81. This pretty much shows how hopeless brute forcing this type of problem is for an exact solution without serious computing power and a lot of time. (Who knows with todays computing power this might actually be feasable....but I have my doubts, and definitely wouldn't recommend anyone waste time trying it, and it would definitely need to be parallelized, and I don't think the problem is suitable for parallelization with a GPU).

It does look like 'dynamic programming' is a potential solution to the high brute force load since solving the problem consists of solving the same connected sub-problems over and over again, and if implmented correctly the simulation would probably take seconds, not a month or a year or whatever brute force would take.....

To me a general formula with a high number of ball placements reduced by the random probability of a ball overlap for each layout is the simplest solution without taking the time to write an (efficient) dynamic programming algorithm and implementing it.

So if you are still interested in calculating it this way it will be a lot easier to rely on the 300^n approximation 😀

EDIT: I think 360*300^(n-1) is actually a bit more accurate. And it doesn't change anything said above.
 
Last edited:
You can place 6 balls around a single ball (7-ball flower rack), so each additional ball takes up 360/6=60 degrees of a ball. But when you add each additional ball there is also 360 degrees added but because it is attached to another ball so it is actually 360-60=300 additional degrees degrees, and the previous ball now also has 300 free degrees for further attachment. So if you assume each ball adds another 300 degrees of freedom, and assuming you want to try to connect a ball at single degree (1 degree) available for each ball that is added.

For example the progression looks like:
1(360)-1(60)
2(360)-2(60)
3(360)-3(60)
...
x(360-60)
=x*300


So for each additional ball you add 300 degrees of freedom to add another ball.

Now how do we permutate this? We draw a tree with 300 branches for each node (ball) and its clearly grows exponentially so you get a general formula of 300^n where n is the number of balls or for 9 connected balls 300^9 possible combinations. This obviously an overcalculation due to the fact each additional ball won't always add 300 degrees of freedom, and sometimes an additional ball will remove more than 60 degrees of freedom from the previous balls, but a lot if not most of the time it will, so it is not entirely unrealistic.

So how big is 300^9?:

256^9=(2^8)^9=2^72 < 300^9 < 512^9=(2^9)^9=2^81

So there are between 2^72 and 2^81 possible (potential) non-numbered ball combinations (if you vary the added balls by 1 degree) It is actually closer to 2^72 than 2^81. This pretty much shows how hopeless brute forcing this type of problem is for an exact solution without serious computing power and a lot of time. (Who knows with todays computing power this might actually be feasable....but I have my doubts, and definitely wouldn't recommend anyone waste time trying it, and it would definitely need to be parallelized, and I don't think the problem is suitable for parallelization with a GPU).

It does look like 'dynamic programming' is a potential solution to the high brute force load since solving the problem consists of solving the same connected sub-problems over and over again, and if implmented correctly the simulation would probably take seconds, not a month or a year or whatever brute force would take.....

To me a general formula with a high number of ball placements reduced by the random probability of a ball overlap for each layout is the simplest solution without taking the time to write an (efficient) dynamic programming algorithm and implementing it.

So if you are still interested in calculating it this way it will be a lot easier to rely on the 300^n approximation 😀

EDIT: I think 360*300^(n-1) is actually a bit more accurate. And it doesn't change anything said above.
Sounds like your estimate is good when 7 balls are connected and you still have to count the remaining 3 ball configurations.

If you take 10 balls and place them in a connected straight line, that counts as one configuration. Why should translating that configuration count as a new configuration?
 
Depends on what game you are playing, and what breaks are allowed. If you are Dan Louie and Mike Vidas (sp?) playing in the finals at City Lights in Tacoma circa ~2012/2013 time frame, the answer is exact ONE, as they broke about 8mph and had the exact same runout, on both sides, every single rack.

Most boring finals I have ever seen in my life, and instilled in me a permanent hatred for the soft break.
 
Depends on what game you are playing, and what breaks are allowed. If you are Dan Louie and Mike Vidas (sp?) playing in the finals at City Lights in Tacoma circa ~2012/2013 time frame, the answer is exact ONE, as they broke about 8mph and had the exact same runout, on both sides, every single rack.

Most boring finals I have ever seen in my life, and instilled in me a permanent hatred for the soft break.
Reminiscent of the 2005-or-so world championships in which Bustamante was breaking at about 10MPH. Quite the spectacle.
 
Back
Top