From New Scientist #1459, 6th June 1985 [link]
The ages of George’s four daughters add up to 70. Amanda says that the exact figures are 8, 16, 21, and 25. But Brenda says that Celia is 15. Delia, on the other hand, says that Celia is 18.
This is all very confusing, until you know about a strange family habit. It is to state one’s own age correctly but to overstate the age of anyone older and to understate the age of anyone younger.
Even after making all possible deductions so far, you cannot work out the age of each daughter. For that you need a bit more information, for instance the number of years separating Belinda and Celia.
Please supply the name and age of the four.
News
There are now 894 Enigma puzzles on the site, and I think this is around half of all the Enigma puzzles published in New Scientist, from Enigma 1 in February 1979 to Enigma 1780 in December 2013.
To help me keep on top of posting the remaining Enigma puzzles I’m going to change the posting schedule to two puzzles a week, one on Friday and one on Monday. Which means, if I can keep sourcing the puzzles, I will have enough to last another 8.6 years!
[enigma311]
This Python 2 program runs in 87ms. (I used the [[
filter_unique()
]] function from the enigma.py library, rather than spin the possibilities into a [[collections.defaultdict()
]]).Solution: Amanda is 16. Brenda is 24. Celia is 17. Delia is 13.
The program presented does not run under Python 3 because it uses Tuple Parameter Unpacking which was removed from Python 3 (see PEP 3113). I think this was a bit of a shame, because although you can easily work around the removal it does make the resulting code look messy. (On the plus side if you do modify the program to run under Python 3 you can use the [[
yield from ...
]] construct in the recursive call in [[decompose()
]] and stop it from working in Python 2).Before we are given the difference between B and C there are 5 possibilities: