From The Sunday Times, 21st January 1962 [link]
This unusual instrument is operated by selecting one of the four switch positions: A, B, C, D, and turning the power on. The effects are:
A: The pratching valve glows and the queech obulates;
B: The queech obulates and the urfer curls up, but the rumption does not get hot;
C: The sneeveling rod turns clockwise, the pratching valve glows and the queech fails to obulate;
D: The troglodyser gives off hydrogen but the urfer does not curl up.
Whenever the pratching valve glows, the rumption gets hot. Unless the sneeveling rod turns clockwise, the queech cannot obulate, but if the sneeveling rod is turning clockwise the troglodyser will not emit hydrogen. If the urfer does not curl up, you may be sure that the rumption is not getting hot.
In order to get milk chocolate from the machine, you must ensure:
(a) that the sneeveling rod is turning clockwise AND;
(b) that if the troglodyser is not emitting hydrogen, the queech is not obulating.
1. Which switch position would you select to get milk chocolate?
If, tiring of chocolate, you wish to receive the Third Programme, you must take care:
(a) that the rumption does not get hot AND;
(b) either that the urfer doesn’t curl and the queech doesn’t obulate or that the pratching valve glows and the troglodyser fails to emit hydrogen.
2. Which switch position gives you the Third Programme?
No setter was given for this puzzle.
This puzzle crops up in several places on the web. (Although maybe it’s just because it’s easy to search for: “the queech obulates” doesn’t show up in many unrelated pages).
And it is sometimes claimed it “appeared in a national newspaper in the 1930s” (although the BBC Third Programme was only broadcast from 1946 to 1967 (after which it became BBC Radio 3)), but the wording always seems to be the same as the wording in this puzzle, so it seems likely this is the original source (at least in this format).
“Omnibombulator” is also the title of a 1995 book by Dick King-Smith.
[teaser44]
Jim Randell 8:08 am on 17 December 2020 Permalink |
Assuming the block is a rectangular cuboid (like a brick), lets us calculate the diagonals of the faces using Pythoagoras’ Theorem. (But this isn’t the only type of cuboid, see: [ @wikipedia ]).
Suppose the sides of the block are (a, b, c).
Then the lengths of the diagonals are: (x, y, z) = (√(a² + b²), √(a² + c²), √(b² + c²)).
Using the following variant of Heron’s Formula [ @wikipedia ] for the area of a triangle with sides (x, y, z)
We can simplify this to calculate the area of a triangle formed by the diagonals as:
And we are interested in when the area A is an integer, for given values of a and b.
This Python program looks for the smallest solution for side c. It runs in 44ms.
Run: [ @replit ]
from enigma import (irange, inf, is_square, div, printf) # the smallest 2 sides are given (a, b) = (5, 10) (a2, b2) = (a * a, b * b) # consider values for the longest side for c in irange(b + 1, inf): c2 = c * c # calculate the area of the triangle r = is_square(a2 * b2 + a2 * c2 + b2 * c2) if r is None: continue A = div(r, 2) if A is None: continue # output solution printf("a={a} b={b} c={c}; A={A}") break # only need the first solutionSolution: The longest side of the original block was 40 cm.
In this case we are given a = 5, b= 10, so we have:
For c to be an integer, it follows the 4A² is divisible by 125 = 5³. So A is some multiple of 25, larger than 25.
And we quickly find a solution, either manually, or using a program:
from enigma import (irange, inf, is_square, div, printf) # consider values for the longest side for A in irange(50, inf, step=25): c = is_square(div(4 * A * A, 125) - 20) if c is not None: # output solution printf("a={a} b={b} c={c}; A={A}", a=5, b=10) break # only need the first solutionHowever, this is not the only solution. If we leave the program running we find larger solutions:
These further solutions could have been eliminated by putting a limit on the size of the block (e.g. if the longest side was less than 7m long, which it probably would be for a desk paperweight).
But we can generate these larger solutions more efficiently by noting that we have a form of Pell’s equation:
writing:
we get:
And we are interested in solutions to the equation where X is even, and Y > b.
We can use the pells.py solver from the py-enigma-plus repository to efficiently generate solutions:
from enigma import (arg, ifirst, printf) import pells (a, b) = (5, 10) # given (a, b) generate solutions for (c, A) in c order def solve(a, b): (a2, b2) = (a * a, b * b) # solve: (a^2 + b^2).c^2 - 4.A^2 = -(a^2.b^2) for (c, A) in pells.diop_quad(a2 + b2, -4, -a2 * b2): if c > b: yield (c, A) # output the first N solutions N = arg(20, 0, int) for (c, A) in ifirst(solve(a, b), N): printf("a={a} b={b} c={c}; A={A}")Which gives the following output:
Solutions for the longest side (c) and area (A) can be calculated by the following recurrence relation:
LikeLike