Eight points are placed on the surface of a sphere with a radius of 1. The shortest distance between any two points is greater than 1.2. How can the points be arranged?
Hint: They are not arranged as a cube. The cube would have an edge length of only 2/sqrt(3) = 1.1547.
(In reply to
For Charlie's thoughtful consideration by FrankM)
Let's see:
My original solution (after correcting the program) has points at 30.73586710236 degrees north and south latitudes. The ones in the north have longitudes, say, of 0, 90, -90 and 180 (same as -180). The ones in the south have longitudes of 45, -45, 135, -135.
Each point is 74.85849218562 degrees of great circle arc, or chord distance of 1.21556252413 radii from each of its four nearest neighbors. For the point at 30.73586710236 north on the 0 meridian, its nearest neighbors are those at that latitude at longitudes 90 and -90, and the ones at 30.73586710236 south with longitudes +45 and -45. All four are at that same distance: 74.85849218562 degrees of great circle arc, or chord distance of 1.21556252413 radii. I assumed the 0-degree, +45 degree was the latitude-preserving twist you were referring to. The point in the northern hemisphere does indeed have two nearest neighbors in the south.
Now perform the longitude-preserving shear. The point at 30.7+ degrees north and zero longitude, for sake of argument(it could be another, but they all work equally well), moves to a longitude that is closer to the equator than 30.7 degrees. Meanwhile, either the point at longitude +45 or the point at longitude -45 has moved further north than its 30.7-degree latitude, while the other has moved south. The one that has moved north will be closer than the 74.85849218562-degree separation that it had before from the point on the prime meridian.
Adding this to the end of my program:
lat1 = 25: lat2 = -25: lonDiff = 45: lat = lat1
sinLat = SIN(lat * dr): cosLat = COS(lat * dr)
sinLat2 = -sinLat
distOnTri = acos(sinLat * sinLat2 + cosLat * cosLat * COS(lonDiff * dr))
angular = distOnTri
distOnTri = 2 * SIN(distOnTri * dr / 2)' convert arc degrees to chord length
PRINT USING "##.########### "; lat; distOnTri; angular
shows
25.00000000000 1.09342861288 66.28378271595
indicating if the point on the prime meridian is moved down to 25 north, while either the point at +45 or -45 is moved north to 25 south, that the distance between them will be 1.093 instead of 1.215.
|
Posted by Charlie
on 2008-02-03 23:46:25 |