Teaser 2906: In proportion
From The Sunday Times, 3rd June 2018 [link] [link]
In 2000 the Sultan of Proportion told his five sons they would inherit his fortune in amounts proportionate to their ages at his death.
Accordingly, they each recently received a different whole number of tesares. Strangely, if he had lived a few more hours the five ages would have been consecutive and each son would again have received a whole number of tesares. Such a delay would have benefited just one son (by 1000 tesares).
How many tesares were distributed in total?
[teaser2906]
Jim Randell 11:06 am on 7 June 2019 Permalink |
Assuming ages are expressed as a whole number of years.
In the actual situation the five ages are all different, and in the hypothetical situation (which is a few hours later) the ages are consecutive, lets say:
The proportion going to each son would be:
In the actual case one of the sons is one year younger, and as the ages are all different it can only be the youngest son, so that actual ages are:
and the actual proportions are:
So the youngest son is better off by 1000 tesares in the hypothetical situation, so if the total number of tesares to be distributed is T, we have:
As the 5 sons were around in 2000 and the puzzle was set in 2018, we can suppose that each son is older than 18 (otherwise we can find a second solution).
This Python program runs in 68ms.
Run: [ @repl.it ]
from enigma import (irange, div, printf) # splits for the specified ages (must all be integers) def split(T, ages): t = sum(ages) return list(div(T * x, t) for x in ages) # consider possible youngest ages (there is a further solution at a=9) for a in irange(18, 100): # the youngest son is 1000 better off in the hypothetical case # compute the total value to be distributed z = 5 * a + 14 T = div(1000 * z * (z + 1), z - a) if T is None: continue # hypothetical ages (consecutive) h_ages = list(irange(a + 1, a + 5)) h_splits = split(T, h_ages) if None in h_splits: continue # actual ages (the youngest is one year younger) ages = [a] + h_ages[1:] splits = split(T, ages) if None in splits: continue # all the rest (other than the youngest) lost out diffs = tuple(y - x for (x, y) in zip(splits, h_splits)) printf("T={T}") printf("actual: ages={ages}, splits={splits}") printf("hypoth: ages={h_ages}, splits={h_splits}, diff={diffs}") printf()Solution: In total 383,160 tesares were distributed.
The actual ages of the sons at the time of the Sultan’s death were: 59, 61, 62, 63, 64. The youngest son turning 60 shortly after.
If we allow ages less than 18 then there is a further solution where the actual ages of the sons are: 9, 11, 12, 13, 14, and 70,800 tesares are distributed amongst them.
LikeLike