Minimum impossible score in darts.

352 Views Asked by At

I was recently playing darts when I began pondering the question of the lowest whole number that cannot be scored in a game of darts.

For clarification, these are the possible scoring options:

  • Each turn consists of throwing three darts, each with its own score independent of the other two.
  • A standard dartboard has the numbers 1-20, along with double and triple scoring places for each number.
  • In the center, there is a small ring that gives a score of 25, as well as the bullseye with a score of 50.
  • For this problem, scoring 0 by missing the board entirely is completely acceptable.
2

There are 2 best solutions below

1
On BEST ANSWER

Score ranges are inclusive of both endpoints, e.g. $0-60$ means $[0,60]$. Some ranges may overlap (for simplicity's sake). \begin{array}{|c|c|} \hline \text{Score(s)} & \text{How to get} \\ \hline 0-60 & a+b+c;\ a,b,c\in[0,20] \\ \hline 61-100 & 3\times20+b+c;\ b,c\in[0,20] \\ \hline 101-120 & 3\times20+2\times20+c;\ c\in[0,20] \\ \hline 121-140 & 3\times20+3\times20+c, c\in[0,20] \\ \hline 141,143,145,147,149,151,153,155,157 & 3\times20+3\times19+2\times c;\ c\in[12,20] \\ \hline 142,144,146,148,150,152,154,156,158,160 & 3\times20+3\times20+2\times c;\ c\in[11,20] \\ \hline 161,\color{red}{164},167,170 & 3\times20+50+3\times c;\ c\in[17,20] \\ \hline 159,\color{red}{162},165,168,171,174,177,180 & 3\times20+3\times20+3\times c;\ c\in[13,20] \\ \hline \end{array} We've done all the possible combinations.

The impossible numbers are: $163,166,169,172,173,175,176,178,179$.

1
On

It is simple to write a Python program to compute the answer to this question. The result is $163$. I cannot think of any mathematical explanation for this.

dart_scores = set([0, 25, 50]) 

for sector in range(1, 21):
    dart_scores.add(sector)
    dart_scores.add(2 * sector)
    dart_scores.add(3 * sector)

three_dart_scores = set([a + b + c for a in dart_scores for b in dart_scores for c in dart_scores])

smallest_unseen = 0
while smallest_unseen in three_dart_scores: 
    smallest_unseen += 1
    
print(smallest_unseen)