https://win-vector.com/2026/01/27/how-many-chess-games-are-possible/ < return [ ] * About Us + Company Information + Staff + Example Engagements * Service Offerings + Consulting + Training Overview + Use Cases * Blog * Talks and Presentations * Contact * Practical Data Science with R Menu Home * Win-Vector Blog * Company Win Vector LLC Data science advising, consulting, and training How Many Chess Games are Possible? By John Mount on January 27, 2026 * ( Leave a comment ) How Many Chess Games are Possible? Here is a fun question: how many different games of chess are possible? Counting the number of possible chess games is quite hard, as the numbers are large and chess board positions can be quite complicated. In this note we will try to estimate the number of possible short games of chess. Long games with many possibilities Francois Labelle has done a lot of interesting work on the statistics of chess games. One thing Labelle looked at is pathologically long chess games that generate large numbers of game variations. Many of his results are derived from building monster cooperative games with clever mechanisms creating a great numbers of possible games. As we see in the example below, board positions in long games tend to look a bit atypical. Game 1 Board after 5000th move from Labelle example longest possible game (note the unusual number of queens) Forsyth-Edwards Notation code for position: 1NQN4/pB4k1/Kpq5/Q4p2/ 2pp2pB/Q2q3Q/1Q2P3/RQ1Q2Q1 w - - 0 1 This allows Labelle to bound the number of possible long chess games to the range 10^29241 to 10^34082. We will restrict ourselves to typical and short chess games. Warmup: the number of typical games by the Fermi problem method The Fermi problem method is to propose an approximate break-down of what we want to know into arithmetic over a few other things we can in turn try to estimate. The trick is to pick a arithmetic form that is both simple enough to calculate over and plausible enough to be a good estimate. For the chess problem we propose the estimate number_of_typical_games ~ typical_number_of_options_per_move^ typical_number_of_moves_per_game. This equation is subjective, in that it isn't yet justified beyond our opinion that it might be a good estimate. It is then a matter of finding usable values for typical_number_of_moves_per_game and typical_number_of_options_per_move. For how many moves chess games tend to take we look to Thomas Ahle's plot of the distribution of high rated players over 13 years of non-blitz time control games and got the following. Length dist The x-axis shows the number of half moves (per player moves, also called "ply") and the y-axis is the number of games ending at this number of moves in Ahle's sample. From this graph we can take 100 half-moves (or 50 moves for each player) as a simple, not too far off typical game length. We also need to know how many different possible moves a player is typically considering. We get an estimate by examining a puzzle from Lichess.org: Game 2 Puzzle r8y3c from Lichess.org, black to move. We can work out that black has 46 legal moves by counting. We write this as 10^log10(46) ~ 10^1.66 for easier calculation. Then our Fermi estimate is that there are easily on order of (10^ 1.66)^100 = 10^166 typical games of chess. This has some of the grace I tried to describe in "The Joy of Calculation". This sort of argument was famously used by Claude Shannon to argue a lower bound of 10^120 possible chess games (ref). These estimates, while useful, are subjective, far apart, and sensitive to the subjective ad-hoc inputs. We will address this in the next sections. The Knuth path product estimate Estimating from a single game Donald E. Knuth, "Estimating the Efficiency of Backtrack Programs", Mathematics of Computation, Vol 29, No 129, Jan 1975 pp 121-136 describes how to estimate the size of a search tree or game tree from a single example path. We will call this the "path product" method. This method eliminates the need to supply any other inputs for the Fermi method. To keep things simple, we are going limit ourselves to "short chess games." We define "short" as games taking no more than 100 half moves to achieve an end condition (win, lose, stalemate, or draw by the rules of chess as implemented in the Python chess package). We can sample from this population of games by generating games through the process of picking legal moves uniformly at random, and rejecting samples that exceed the half move limit before achieving an ending condition. We consider a single sample game g generated by generating legal moves uniformly at random. Game 3 End of sample game (move 43, White checkmates Black) Given our sample working chess game "g" we then replace our Fermi estimate of typical_number_of_options_per_move^typical_number_of_moves_per_game with Knuth's path product estimator p(g) = [?][i] number_of_legal_moves_in_position(g[i]) where g[i] is the i-th position in the single game g we are examining. If the sample game was exactly typical (i.e. lasted for exactly typical_number_of_moves_per_game half moves and always had typical_number_of_options_per_move legal moves per position) these two calculations would be identical. Things are rarely so perfectly "typical", so we expect this new estimate to often be over or under the original Fermi method estimate (depending on which game we use as our working example). Knuth proved this path product estimate is quite good in the following technical sense. Let G be the set of all possible short chess games. We want to know | G|, the size of G. The issue is |G| is so large that we can not hope to directly enumerate all of the elements of G to directly perform the counting. Theorem: (1 / |G|) [?][g in G] p(g) = |G|. This is traditionally written in terms of the expected value operator as E[g in G][p(g)] = |G|. Knuth considered this surprising enough that he wrote: "We shall consider two proofs, at least one of which should be convincing." The point is: we can approximate the average on the left side of the equations, and this now means we can approximate |G|. In our case our new single game based path product estimate for the total number of possible short chess games is: 10^116.96179. As we are dealing with large numbers we will content ourselves with "order of magnitude" measurements and just reporting an approximation with an integer exponent. So we will round the exponent and take our estimate as 10^117. Estimating from many games The usual way to improve expected value estimates is averaging more examples. We consider a sample of 10000 independently generated games. In this sample the log 10 of our different size estimates are distributed as follows. No description has been provided for this image The average estimate from this sample (which we hope is not too far from the average of the population it is being drawn from) is 10^151. Unfortunately, the observed standard error (or observed uncertainty in our estimate of the average) is just as large. In this circumstance this means we shouldn't consider the sample reliable. A larger sample We try to solve this variance issue by using an independent second larger sample from a larger simulation run. We can look at subsets of our larger (size 1000000) sample to explore how the estimate behaves with respect to varying sample size. No description has been provided for this image The initial jumps and trend-like behavior of this graph is the sample becoming big enough to find important rare large examples. Without additional arguments we can't be certain there are not more of these un-encountered large estimates for any reasonable sample size, meaning there are some remaining risks in this estimate. We are looking for this estimate to stabilize at a given value. We also are looking for the ratio of the standard error (observed uncertainty in the estimate) over the estimate to drop below 1. This ratio is called the coefficient of variation, and we plot this below. No description has been provided for this image We want the coefficient of variation to be smaller than 1. This would imply the sample estimate is at least not contradicting itself. We are starting to see this as we move to the larger sample sizes. The average estimate from this larger sample sample is again 10^151. That will be our claimed estimate for the number of possible short chess games. As a check, our two sample based estimates rendered to more digits in the exponent are: * Smaller sample estimate is 10^150.94 * Larger sample estimate is 10^151.27. How reliable is the path sampling scheme? The Knuth path sampling scheme appears to be quite reliable. The main risk, as mentioned by Knuth, is high unobserved variance. This is the worrying possibility that our sample is unrepresentative because there is something large out there we have not yet seen. In the case where we know there are no large monster games hiding, the procedure is preternaturally accurate. For example, the graph below is the percent error in estimating the number of chess games that reach at least the first k-ply for k equals 1 through 15. For these very short games the exact values of the counts are reported in The On-Line Encyclopedia of Integer Sequences A048987, allowing us to check our results. No description has been provided for this image The right-most point on the graph indicates that we are off by about 1/2 a percent in estimating the size of a population of 2015099950053364471960 possible games. This is using a sample of only size 100000, which is much smaller than the population size of 2015099950053364471960 we are estimating. Initially the number of games is growing almost exponentially, so is quite regular and easy to estimate. However, as we see in the next graph, the Knuth path sample estimator is much closer to the actual counts than any simple exponential trend. The minimal exponential trend, even if fit to the entirety of the known data, is routinely off by over +- 30 percent even in its own fitting region. No description has been provided for this image Conclusion We approximated the number of possible short chess games with both the Fermi problem method and Knuth's path-product estimation method. Our final estimate was that it is plausible that there are on the order of 10^151 possible short games of chess. When we switch from the Fermi problem method to the Knuth path-product method we: * Avoid having to guess a useful subjective arithmetic form. * Become more able to incorporate the exact rules of the system we are exploring. * Remove the need for subjective estimated inputs. * Can try to "buy reliability" by building larger samples. And, of course, the methods apply to a lot more than just chess. Share this: * Share on X (Opens in new window) X * Share on LinkedIn (Opens in new window) LinkedIn * Share on Facebook (Opens in new window) Facebook * Share on Reddit (Opens in new window) Reddit * Email a link to a friend (Opens in new window) Email * Like this: Like Loading... Categories: Computer Science Mathematics Tagged as: algorithms approximation chess Combinatorics [615255da9a93c] John Mount Uncovering Hidden Price Elasticity Leave a ReplyCancel reply Site Map * Blog * About Us * Practical Data Science with R * Company Information + Staff + Example Engagements * Service Offerings + Consulting + Training Overview + Use Cases * Talks and Presentations * Contact Recent Posts * How Many Chess Games are Possible? * Uncovering Hidden Price Elasticity * Even citing NSF funded research is an ACM premium feature * Modeling Censored Data with Tobit * I am Tired of Praise of Byproduct search [ ] Categories * Tutorials (483) * Statistics (434) * Opinion (331) * Pragmatic Data Science (259) * data science (251) search Discover more from Win Vector LLC Subscribe now to keep reading and get access to the full archive. Type your email... [ ] Subscribe Continue reading %d