让P1 = (x1, y1) 和P2 = (x2, y2) s.t. d(P1, P2) = |x1-x2| + |y1-y2| 是最大的。
假设例如x1 >= x2 和y1 >= y2(其他情况非常相似,您必须使用其他最大值)。那么:
d(P1, P2) = x1 - x2 + y1 - y2 (1)
让P3 = (x3, y3) s.t. x3 + y3 是最大的。我们的目标是证明d(P3, P2) >= d(P1, P2)。
根据定义x3 + y3 >= x1 + y1 (2)。通过(1)和(2):
- 如果
x3 <= x2,那么:d(P3, P2) = x2 - x3 + y3 - y2 >= x2 - x3 + (x1 + y1 - x2) - y2 = x1 + y1 - x3 - y2 >= x1 - x2 + y1 - y2 = d(P1, P2)
- 如果
y3 <= y2:对称情况。
- 否则
x3 >= x2 和y3 >= y2:d(P3, P2) = x3 - x2 + y3 - y2 >= x1 - y2 + y1 - y2 = d(P1, P2)。
因此d(P3, P2) >= d(P1, P2) 和d(P3, P2) <= d(P1, P2),所以算法在这种情况下是正确的。
几何证明:让我们转换点,使P2 现在是(0, 0)。那么集合的直径是到位于最大直径的封闭球上的点的距离。具有曼哈顿距离的球是正方形,其边与坐标轴成pi/4 角。在那种情况下,公式很容易找到(它只取决于最大距离点位于哪个象限)。