Brain-Teaser 661: The logical choice
From The Sunday Times, 10th March 1974 [link]
Four members who hold office in the Logic Club approve of each other. They recently decided among themselves that next year each of the four would hold an office now held by one of the other three.
Other members wanted to know whether this was legal and who was moving to which office. So we asked them to explain themselves under the Club’s Friday rules: these rules say that a member must either make two correct statements or two incorrect statements.
We unfortunately forgot that we were questioning them on a Tuesday, when members may keep the Friday rules or break them, just as they please.
The President said: “What we are doing is legal. The man who will be Chairman next year keeps the Friday rules on Tuesdays”.
The Chairman said: “I am keeping the Friday rules. I shall not become Secretary next year”.
The Secretary said: “The Treasurer will become President next year. I am not keeping the Friday rules”.
The Treasurer said: “The man who will be Secretary next year does not keep the Friday rules on Tuesdays. What we are doing is legal”.
Which of them will be next year’s Chairman? Which will be next year’s Treasurer? Is what they are doing legal?
This puzzle is included in the book The Sunday Times Book of Brain-Teasers: Book 2 (1981). The puzzle text above is taken from the book.
[teaser661]
Jim Randell 9:45 am on 15 March 2022 Permalink |
If the questioning takes place on a Tuesday, where “members may keep the Friday rules (give two truth values the same) or break them (give two different truth values), just as they please”, to my mind this means the answers to the questions on a Tuesday can be any truth values, and we are none the wiser.
I suspect we are meant to suppose that on a Tuesday the members either consistently keep the Friday rules (each pair of statements has the same truth value), or consistently break them (each pair of statements has one truth and one falsehood), and their pre-determined behaviour is known to the other officers. Then we can make progress.
This Python program looks at all possible scenarios to find those which correspond to the described situation. It runs in 47ms.
Run: [ @replit ]
from enigma import (subsets, product, multiset, map2str, printf) # f = keeping Friday rules; x, y = statements check = lambda f, x, y: f == (x == y) # we can populate the following variables: # j: map(current job -> new job); p: map(new job -> current job) # f: map(current job -> keeping Friday rules # legal: boolean # collect results (<next C>, <next T>, <legal>) qs = multiset() # consider possible assignments people = (P, C, S, T) = "PCST" js = subsets(people, size=4, select="D") fs = subsets((0, 1), size=4, select="M") for (jv, fv, legal) in product(js, fs, (0, 1)): j = dict(zip(people, jv)) p = dict(zip(jv, people)) f = dict(zip(people, fv)) # P: "is legal; next C keeps Friday rules if not check(f[P], legal, f[p[C]]): continue # C: "C is keeping Friday rules; C will not become S" if not check(f[C], f[C], j[C] != S): continue # S: "T will become P; S is not keeping Friday rules" if not check(f[S], j[T] == P, not f[S]): continue # T: next S does not keep Friday rules; is legal" if not check(f[T], not f[p[S]], legal): continue printf("[legal={legal} j={j} f={f}]", j=map2str(j, arr="->"), f=map2str(f)) qs.add((p[C], p[T], legal)) # output results for ((q1, q2, q3), n) in qs.most_common(): printf("(1) {q1} -> C; (2) {q2} -> T; (3) legal = {q3} [{n} solutions]", q3=bool(q3))Solution:(1) The Secretary plans to become the next Chairman; (2) The President plans to become the next Treasurer; (3) It is not legal.
The plan for the assignment of jobs is:
They can choose to follow Friday rules or not as they wish, except P must be the opposite of S.
LikeLike