Sunday Times Teaser 3153 – Pole Position
by Stephen Hogg
Published Sunday February 26 2023 (link)
Jeb’s 25x25km square ranch had his house’s flagpole at the ranch’s pole of inaccessibility (the point whence the shortest distance to a boundary fence was maximised).
At 50, Jeb gave each of his four sons a triangular tract of his land, with corners whole numbers of km along boundary fences from each corner post (as illustrated, not to scale). Each tract’s area (in square km) equalled that son’s age last birthday (all over 19, but under 30). All the tracts’ perimeters differed, and each son set his hacienda’s flagpole at his own tract’s pole of inaccessibility.
Curiously, for Jeb’s new octagonal ranch the pole of inaccessibility and the shortest distance from this to a boundary fence were unchanged.
Give the eldest son’s shortest distance from his flagpole to a boundary fence.
-
Brian Gladman permalink123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051from math import asin, pi# | (p,p) ranch centre# | |# (0,b) |__ |# | --___ |# | --__ !# | --__|# | --__# +---------------------# ranch (0,0) (a, 0)# corner## The minimum distance between the line from (a, 0) to (0, b)# and the point (p, p) is given by:## abs((a + b).p - a.b) / sqrt(a^2 + b^2)## with c = sqrt(a^2 + b^2) and e = ranch side = 2.p## [(a + b).e / 2 - a.b] / c > e / 2# ==> e > 2.a.b / (a + b - c)# ==> e > (a + b + c)age, dis, side = 0, 0, 25# horizonal and vertical distances from a corner# of the original ranchfor a in range(1, 13):for b in range(a + 1, 13):# the sons ranch areas are 19 < area < 30area, r = divmod(a * b, 2)if not r and 19 < area < 30:# the hypotenusse side of the son's ranchesc = (a * a + b * b) ** (1 / 2)# check for a valid perimeterif (per := a + b + c) < side:# the minimum distance from a son's pole to an edge# (the triangle incentre r = area / semi-perimeter)inr = 2 * area / perprint(f"{a = }km, {b = :2} km, {area = :2} km^2,"f" {per = :.3} km, {inr = :.3} km")if area > age:age = areadis = inrprint(f"Solution = {dis:.1f} km.")