Brain-Teaser 502: [Duplicated leaves]
From The Sunday Times, 17th January 1971 [link]
A publisher friend of mine told me the following improbable story. He dreamt that on his shelves he had a collection of twelve books of the same edition of the same title. The curious thing about these books was this:
The book, as published, ran to 300 pages, but eleven of the books on his shelves had each been bound with duplicate leaves inserted. The number of leaves thus duplicated was different in each volume, all except two being even numbers. They went in ascending order from the book on the left (Volume I), the highest being twenty extra leaves in Volume XI.
The end book on the right (Volume XII) had 200 pages missing. By a strange coincidence, the duplicated sections from the other volumes exactly filled these gaps. In the reconstituted Volume XII the middle pages (143 to 158) came from the middle volume of the faulty books, while half the duplicated pages came before these and an equal number in the latter half of the volume.
How many pages were duplicated in Volume IV?
This puzzle was originally published with no title.
[teaser502]
Jim Randell 10:55 am on 27 September 2019 Permalink |
Assuming that 1 “leaf” consists of 2 “pages” (the “front” (odd numbered) page and “back” (even numbered) page).
We know vol XII has 200 missing pages (= 100 missing leaves), and each is accounted for (exactly) by the duplicate leaves in vols I – XI.
Of the 100 duplicate leaves vol XI has 20 of them, so the remaining volumes have 80 duplicate leaves between them.
This Python program examines this scenario. It runs in 104ms.
from enigma import (irange, printf) # decompose total t into k different ascending numbers, min value m def decompose(t, k, m=1, s=[]): if k == 1: if not (t < m): yield s + [t] else: for x in irange(m, t - (k - 1) * m): yield from decompose(t - x, k - 1, x + 1, s + [x]) # there are 80 extra leaves amongst vols I - X for vs in decompose(80, 10, 1): # vol VI has (at least) 8 extra leaves if vs[5] < 8: continue # and vol XI has exactly 20 extra leaves if vs[-1] > 19: continue vs.append(20) # exactly 2 are odd if not (sum(x % 2 == 1 for x in vs) == 2): continue # output the number of duplicate leaves for each volume printf("{vs}")This seems to give 4 possibilities for the numbers of duplicate leaves:
If we’d been asked for the number of duplicate leaves (or pages) in vols VII or VIII there would be a unique solution (10 leaves for vol VII; 12 leaves for vol VIII), but not for vol IV (we have options for 4, 5, 6 duplicate leaves).
So we need to try an untangle the condition:
So vol VI must have (at least) 8 duplicate leaves. Which it does in each of our possibilities, so that doesn’t help us.
The rest of it either doesn’t make sense, or doesn’t seem to be useful.
“half the duplicate pages” is 50 leaves, so 50 of the duplicate leaves end up making up some of pages 1-142 of vol XII.
It then goes on to say “and an equal number” (presumably another 50 leaves) “in the latter half of the volume” (presumably pages 151-300), which seems to account for 104 of the 100 missing leaves. So that can’t be right.
Perhaps it meant “…half the remaining duplicated pages…”, but that just tells us that 46 of the duplicate leaves are used for pages 1-142, and the other 46 are used for pages 159-300, which as we have 92 duplicate leaves to distribute doesn’t seem to help either.
Another possibility is to ignore the final condition, and take a strict reading of “eleven of the books on his shelves had each been bound with duplicate leaves inserted”, to mean that each book has at least 2 duplicate leaves. This removes the first 3 of the possibilities, leaving:
As the only remaining solution, so vol IV has 5 duplicate leaves, and hence 10 duplicate pages. (Which is the published solution).
We can modify line 13 of the program to [[
decompose(80, 10, 2)]] to get this single solution.LikeLike