Teaser 2896: Light angles
From The Sunday Times, 25th March 2018 [link] [link]
The hotel’s night clerk was always glancing at the novelty 12-hour clock facing her. Its hands’ rotation axis was exactly midway across and between three-quarters and four-fifths of the way up the four-metre high rectangular wall. Light rays directed out along the continuous-motion minute and hour hands made pencil beams across the wall. Twice during her 12-hour shift she saw the beams hit the top corners of the wall simultaneously, and twice she saw the beams hit the bottom corners simultaneously.
How wide was the wall to the nearest metre?
[teaser2896]
Jim Randell 5:21 pm on 24 July 2019 Permalink |
I thought this was a neat puzzle, but there are only a few values to consider.
For any given hour, there will be a (fractional) minute when the hour “hand” and the minute “hand” are the at the same angle from vertical, but on opposite sides, and so mirror each other about the vertical axis.
If we consider the times between 12 o’clock and 6 o’clock, at some time before 3 o’clock the two “hands” will illuminate the top corners of the wall, and as sometime after 3 o’clock the two “hands” will illuminate the bottom corners of the wall. By choosing values for the “top” hours and “bottom” hours, we can determine the corresponding minutes, angles of the “hands” and hence the height of the origin of the hands up the wall. If it’s between 3.0m and 3.2m we have a solution.
This Python program runs in 68ms.
Run: [ @repl.it ]
from math import tan from itertools import product from enigma import (irange, fdiv, two_pi, printf) # given an hour, compute the corresponding minute and tangent def hmt(h): m = fdiv((12 - h) * 60, 13) # minute a = fdiv(h, 12) + fdiv(m, 720) # angle (fraction of a circle) t = tan(two_pi * a) # tangent of a return (h, m, t) # consider the times when the hour and minute beams mirror each other # about the vertical axis # calculate (h, m, t) for hours from 0 to 5 hmts = list(hmt(h) for h in irange(0, 5)) # the hour for the top right corner is before 3 # the hour for the bottom right corner is after 3 for ((h1, m1, t1), (h2, m2, t2)) in product(hmts[:3], hmts[3:]): # calculate the height of the hands above the floor y = fdiv(4 * t1, t1 - t2) # check it is in range if 3.0 <= y <= 3.2: # calculate the width of the wall x = y * -t2 w = 2 * x # output solution printf("width={w:.03f}, x={x:.03f} y={y:.03f} [TR @ {h1}:{m1:05.2f}, BR @ {h2}:{m2:05.2f}]")Solution: The wall is approximately 16 metres wide.
The actual width of the wall (to the nearest millimetre) is 15.979m.
The height of the origin of the hands is 3.030m.
Here is a diagram that shows the wall, ruled with lines at heights of 1m, 2m, 3m and 3.2m.
The upper lines would be illuminated at 2:46 and 9:14.
The lower lines would be illuminated at 3:42 and 8:18.
So it is possible to observe the situation between 2:46 and 9:14, which is only 6 hours 28 minutes.
LikeLike
Jim Randell 9:29 am on 25 July 2019 Permalink |
Here’s a chart with the choices for the times (upward times across the top, downward times along the side), and the calculated width of the wall and height of the hands.
We find the solution (highlighted) when h is between 3.0m and 3.2m.
LikeLike