Enigmatic Code

Programming Enigma Puzzles

Tantalizer 465: Decline and fall

From New Scientist #1016, 2nd September 1976 [link]

Paul Pennyfeather, you will recall from Evelyn Waugh’s novel, was sent down from Oxford and went to teach in Dr Fagan’s horrid school at Llanaba Abbey. There he found that a class of the beastliest boys could be kept quiet till break by offering a prize of half a crown for the longest essay, irrespective of all possible merit. Now read on:

“Sir”, remarked Clutterbuck after break, “I claim the prize”.

“But you”, Paul protested feebly, “have written only one-third as many words as Ponsonby, one-fifth as many as Briggs and one-eighth as many as Tangent”.

“Nonetheless, Sir, Dr Fagan would certainly wish me to have the prize”.

And so it proved. You might also like to know that the oldest of these four boys wrote 2222 more words than the second oldest and used more full stops in his essay than any of them who wrote less words than the youngest.

Where was Clutterbuck in the order of age, and how many words did he write?

[tantalizer465]

2 responses to “Tantalizer 465: Decline and fall

  1. Jim Randell 20 December 2017 at 9:39 am

    If Clutterbuck’s word count is C, then the other word counts are: P=3C, B=5C, T=8C.

    And the oldest wrote 2222 more words than the second oldest so, we have one of the following situations:

    2222 = 3C – C = 2C ⇒ C = 1111; — [1]

    2222 = 5C – C = 4C ⇒ C = 555.5

    2222 = 8C – C = 7C ⇒ C = 317.428…

    2222 = 5C – 3C = 2C ⇒ C = 1111; — [2]

    2222 = 8C – 3C = 5C ⇒ C = 444.4

    2222 = 8C – 5C = 3C ⇒ C = 760.666…

    The only viable solutions are:

    [1] P is the oldest, C is the second oldest, giving possible orderings of:
    [1a] P=3333, C=1111, B=5555, T=8888
    [1b] P=3333, C=1111, T=8888, B=5555

    or:

    [2] B is the oldest, P is the second oldest, giving possible orderings of:
    [2a] B=5555, P=3333, C=1111, T=8888
    [2b] B=5555, P=3333, T=8888, C=1111

    So the answer to the second part of the puzzle is that Clutterbuck wrote 1111 words.

    To answer the first part we need to interpret:

    [*] “the oldest … used more full stops in his essay than any of them who wrote less words than the youngest”

    In the absence of any further information about the number of full stops written by any of the other boys, I think the most reasonable interpretation is:

    (a) there is at least one boy who wrote fewer words than the youngest boy; and
    (b) the oldest boy used more full stops than any of the boys who wrote fewer words than the youngest boy

    Condition (b) means that the oldest boy cannot have written fewer words than the youngest boy, otherwise he would have to have used more full stops than himself. A situation which we cannot satisfy.

    However condition (a) eliminates [2b], and condition (b) eliminates [1a], [1b], [2a], so together they leave no viable solutions.

    A more relaxed interpretation of the sentence would be:

    (c) for any boy X who wrote fewer words than the youngest boy, the oldest boy used more full stops than X

    Again this means that the oldest boy cannot have written fewer words than the youngest boy, and so eliminates cases [1a], [1b], [2a].

    For [2b] there are no other boys who wrote fewer words than they youngest boy, and the convention for universal quantification over the empty set is that it is vacuously true, so in this interpretation we have a single answer:

    5555 words, Briggs (oldest)
    3333 words, Ponsonby
    8888 words, Tangent
    1111 words, Clutterbuck (youngest)

    If this is the interpretation the setter wanted us to use it would have been better (and more simply) phrased as:

    the eldest boy wrote more words than the youngest

    Here is a Python program that uses this interpretation. It runs in 42ms.

    Run: [ @repl.it ]

    from itertools import permutations
    from enigma import printf
    
    # the multipliers and the correponding boys
    ms = { 1: 'Clutterbuck', 3: 'Ponsonby', 5: 'Briggs', 8: 'Tangent' }
    
    # choose an ordering for the multipliers (oldest to youngest)
    for age in permutations(ms.keys()):
    
      # "the oldest wrote 2222 words more than the second oldest"
      (C, r) = divmod(2222, age[0] - age[1])
      if not(r == 0 and C > 0): continue
    
      # "the oldest boy wrote more words than the youngest"
      if not(age[0] > age[-1]): continue
    
      # output the solution, oldest to youngest
      for (i, m) in enumerate(age, start=1):
        printf("{i}. {w} words, {boy}", boy=ms[m], w=m * C)
      printf()
    

    Solution: Clutterbuck is the youngest. He wrote 1111 words.

    This is indeed the published solution and the explanatory text says:

    2222 is divisible by 2 but not by 3, 4, 5 or 7 and so is the difference between either x and 3x or 3x and 5x. But the oldest wrote more than two others and so wrote 5x.

    I don’t see how the sentence [*] is equivalent to “the oldest wrote more than two others”.

  2. Hugh Casement 20 December 2017 at 2:07 pm

    Congratulations, Jim, on your interpretation of wording that appears to be deliberately obscure.
    In any case, grammar requires that one write fewer words, not “less words”.  Words are discrete and countable objects, not something that is measured by the kilogram or the litre.
    Is the distinction too subtle for New Scientist?

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: