Brain-Teaser 43: [Golf match]
From The Sunday Times, 14th January 1962 [link]
Brown came into the clubhouse after his match with Jones. “We were all square after nine holes”, he said, “when Jones suggested that we should play for a small side-stake on the winning of the tenth hole, double the stake on the eleventh, double again on the twelfth, and so on. I agreed. We didn’t halve any of the next nine holes, the match was decided on the eighteenth green, and I found that I had won eleven shillings and ninepence”. We asked him who won the match. “Work it out”, said Brown.
Who won the match, which of the last nine holes did Brown win, and what was the side-stake on the tenth hole?
This puzzle was originally published with no title.
[teaser43]
Jim Randell 9:03 am on 19 September 2021 Permalink |
B and J were equal after the first 9 holes (i.e. 4.5 holes each). And each won 4 of the next 8 holes, so that the match was decided on the 18th hole.
If the stake on the 10th hole was k, then it increases in powers of 2, i.e. k, 2k, 4k, 8k, 16k, …, 256k.
In order to come out on top B must have won the 256k hole (as the remaining holes sum to 255k), and so B won the match.
In binary, B’s stake multiplier has 5 bits and is between 100001111 (= 271) and 111110000 (= 496), and J’s multiplier is (111111111 − B).
In order for B to win 11s + 9d = 141d the stake on the 10th hole is 141 / (B − J), and I assume the stake is some sensible amount (i.e. a multiple of 1/4 d).
This Python program runs in 53ms.
from enigma import (bit_permutations, div, irange, printf) # choose B's stake multiplier for B in bit_permutations(0b100001111): J = 0b111111111 - B k = div(564, B - J) if k: hs = list(h + 10 for h in irange(0, 8) if B & (1 << h)) printf("holes = {hs}; stake @ 10 = {k:g}d", k=0.25 * k) if B == 0b111110000: breakSolution: Brown won the match. Brown won the 10th, 11th, 12th, 14th, 18th holes. The stake on the 10th hole was 3d.
The holes Brown won give: (1 + 2 + 4 + 16 + 256)k = 279k
And the holes Brown lost give: (8 + 32 + 64 + 128)k = 232k
The difference is: 279k − 232k = 47k, so: k = 141d / 47 = 3d
LikeLike
Hugh Casement 10:14 am on 19 September 2021 Permalink |
To bring it up to date a bit, he won £2.35
— though when we compare (for example) the cost of sending a letter then and now I feel an equivalent initial stake would be quite a bit more than 5p.
LikeLike
Frits 5:52 pm on 4 October 2021 Permalink |
from enigma import SubstitutedExpression, div # the alphametic puzzle p = SubstitutedExpression( [ # Brown won 4 holes on holes 10-17 "sum([A, B, C, D, E, F, G, H]) == 4", # Brown won the last hole "I = 1", # Brown's profit (141 pence) is a multiple of the stake "div(141, sum([2 ** i if x else -1 * 2 ** i \ for i, x in enumerate([A, B, C, D, E, F, G, H, I])]))", ], base=2, answer="(A, B, C, D, E, F, G, H, I), \ sum([2 ** i if x else -1 * 2 ** i \ for i, x in enumerate([A, B, C, D, E, F, G, H, I])])", verbose=0, distinct="", ) # print answer for (_, ans) in p.solve(): print(f"Brown won the match and the holes " f"{[i + 10 for i, x in enumerate(ans[0]) if x]}" f" with side-stake of {141 // ans[1]} pence")LikeLike