An Easter Brain-Teaser: Indoor sports
From The Sunday Times, 6th April 1958 [link]
We know them familiarly as Jennifer, Judith and Jean, but in age order they are the doctor’s wife, the dentist’s widow and the draper’s daughter, and they form the new Committee of our Indoor Sports and Pastimes Club.
These are the election results, 200 members having each voted for three [different] names:
Elected:
Mrs. Battledaw, 148 votes
Mrs. Shuttlecox, 137 votes
Mrs. Bowles, 126 votesNot elected:
Mr. D’Artz, 125 votes
Mr. Snewker, 64 votesTotal votes cast:
600 votesThose who voted for both Jean and Judith were the same in number as those who didn’t vote for the doctor’s wife and if even one of Snewker’s supporters had voted for D’Artz he might have gained the third place. Jean is more interested in Mr. Bowles than in her own husband, who is sorry the draper’s daughter didn’t come top.
Who are Jennifer, Judith and Jean?
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 £5 was offered.
[teaser-1958-04-06] [teaser-unnumbered]
Jim Randell 9:43 am on 17 April 2022 Permalink |
There are 5 candidates (let’s number them 1, 2, 3, 4, 5), and each member votes for three different candidates, so possible voting patterns are:
If we suppose a, …, j are the numbers who voted for their respective patterns, then their sum is 200.
And from the votes cast (assuming the numbers are the order that the candidates finished in), we have:
We are told “if even one of Snewker’s [5] supporters had voted for D’Artz [4] he might have gained the third place”, which implies that no-one voted for both 4 and 5, so:
Hence:
We can use one of these equations to select seed values (I used: c + e + h = 64), and then determine the remaining values using the remaining equations, and verify that they are non-negative integers, and that the additional conditions hold.
The following Python program runs in 241ms.
Run: [ @replit ]
from enigma import (Matrix, decompose, as_int, subsets, multiset, printf) # record solutions, as: ((jen, jud, jea), (doc, den, dra)) ss = multiset() # initial values f = i = j = 0 # consider values for c, e, h for (c, e, h) in decompose(64, 3, increasing=0, sep=0, min_v=0): # solve for the remaining values eqs = [ # a b d g = k ((1, 1, 1, 0), 148 - c - e), ((1, 1, 0, 1), 137 - c - h), ((1, 0, 1, 1), 126 - e - h), ((0, 1, 1, 1), 125), ] # look for non-negative integers try: (a, b, d, g) = Matrix.linear(eqs, valid=(lambda x: as_int(x, "0+"))) except ValueError: continue # consider positions by names for (jen, jud, jea) in subsets((1, 2, 3), size=len, select="P"): # Jean is not Mrs Bowles if jea == 3: continue # v1 = votes for both Jean and Judith v1 = { 1: a + g + h, 2: a + d + e, 3: a + b + c }[jen] # consider related occupations by position for (doc, den, dra) in subsets((1, 2, 3), size=len, select="P"): # Jean's husband was not the dentist if den == jea: continue # Draper's daughter didn't come top if dra == 1: continue # v2 = didn't vote for doctor's wife v2 = { 1: g + h + i + j, 2: d + e + f + j, 3: b + c + f + i }[doc] if v1 != v2: continue # record this solution ss.add(((jen, jud, jea), (doc, den, dra))) # output solutions for (((jen, jud, jea), (doc, den, dra)), n) in ss.most_common(): name = { 1: "Battledaw", 2: "Shuttlecox", 3: "Bowles" } rel = { doc: "doctor", den: "dentist", dra: "draper" } printf("[{n} solutions]") printf("-> Jennifer = Mrs {n} [{r}]", n=name[jen], r=rel[jen]) printf("-> Judith = Mrs {n} [{r}]", n=name[jud], r=rel[jud]) printf("-> Jean = Mrs {n} [{r}]", n=name[jea], r=rel[jea]) printf()Solution: Jennifer is Mrs Battledaw, the dentist’s widow (1st); Judith is Mrs Bowles, the draper’s daughter (3rd); Jean is Mrs Shuttlecox, the doctor’s wife (2nd).
There are many distributions of votes, but they all satisfy:
And lead to the solution given above.
LikeLike
John+Crabtree 6:44 pm on 18 April 2022 Permalink |
Nobody votes for both Dr. A and Mr. S, meaning that 11 people vote for all three women,
It can then be shown that 84 people vote for both Mrs. Ba. and Mrs. Sh, 74 people for both Mrs. Ba. and Mrs. Bo, and 63 people for both Mrs. Sh. and Mrs. Bo.
The Doctor’s wife must get 137 or 126 votes, and so must the Draper’s daughter, who is not in first place. And so the Dentist’s widow must get 148 votes, and cannot be Jean, who is married.
Jean cannot be Mrs. Bowles and so cannot get 126 votes, and so must get 137 votes.
Then Judith must get 126 votes, and so Jean is the Doctor’s wife, Judith is the Draper’s daughter, and Jennifer is the Dentist’s widow.
LikeLike