Brain-Teaser: Silver collection
From The Sunday Times, 31st July 1960 [link]
Seven South Sea Island brothers found on the beach a broken box and mixed silver coins scattered. These were old British coins (six-pence, shilling, florin, half-crown, and crown). 135 of them bore a man’s head and 54 a woman’s. The two younger brothers claimed the latter and their elders shared the former.
Being ignorant of the value of the coins they agreed to take twenty-seven each. First they laid the coins in heaps of each size. The senior brother then took seven coins from each of two heaps and smaller numbers from the other three heaps to make up twenty-seven coins. Each other brother then took the same numbers but each from a different order of heaps.
Unknown to themselves, the five elders had equal money value. The boys also had equal value, but greater than their elders.
What were the values?
[Note: Respective values: 6d, 12d, 24d, 30d, 60d]
This is one of the occasional Holiday Brain-Teasers published in The Sunday Times prior to the start of numbered Teasers in 1961. A prize of 3 guineas was offered.
This puzzle is included in the book Sunday Times Brain Teasers (1974). The above text is taken from the book.
[teaser-1960-07-31] [teaser-unnumbered]
Jim Randell 10:49 am on 26 September 2021 Permalink |
This Python program runs in 51ms.
Run: [ @replit ]
from enigma import (decompose, group, subsets, printf) # denominations of coins denominations = [6, 12, 24, 30, 60] # total for quantities of coins in qs (wrt denominations) total = lambda qs: sum(x * y for (x, y) in zip(qs, denominations)) # decompose 27 - 14 = 13 into 3 numbers between 1 and 6 for qs in decompose(13, 3, min_v=1, max_v=6, sep=0): qs += (7, 7) # collect permutations by total amount d = group(subsets(qs, size=len, select="mP"), by=total) # look for 5 permutations for the elders for (k1, vs1) in d.items(): if not (len(vs1) > 4): continue # and 2 permutations, with a greater sum for the youngers for (k2, vs2) in d.items(): if not (k2 > k1 and len(vs2) > 1): continue printf("elders = {k1} [from {vs1}]") printf("youngers = {k2} [from {vs2}]") printf()Solution: The elders had selected coins with a value of 798d (= 66s 6d). The youngers had selected coins with a value of 834d (= 69s 6d).
LikeLike
Hugh Casement 3:13 pm on 26 September 2021 Permalink |
I confess I cheated by working backward from Jim’s solution, but was able to deduce that there were 48 crowns, 44 half crowns, 38 florins, 32 shillings, and 27 sixpences.
Total 189 coins with a value £23 11s 6d = 5658 d.
If the five piles were arranged in order of decreasing value, the seniors (in some order) took
7, 7, 4, 3, 6; 7, 7, 3, 6, 4; 7, 6, 4, 7, 3; 7, 4, 7, 6, 3; 6, 7, 7, 3, 4 coins from the respective piles.
The youngsters took 7, 7, 6, 3, 4 and 7, 6, 7, 4, 3.
There would be other ways of making up the values 798 and 834 with 27 coins, but not with as many as five of one and two of the other, using the same numbers in different orders.
LikeLike