问题(IMO 2011 年的第 2 题):

设 $S$ 是平面上包含至少两个点的有限点集,且其中任意三点不共线。

定义一个「风车」过程:直线 $l$ 从 $S$ 中某点 $P$ 开始,绕 $P$ 顺时针旋转,直到 $l$ 碰到 $S$ 中另一点 $Q$。此时 $Q$ 变为 $l$ 的新旋转中心(轴点),$l$ 继续顺时针旋转,直到直线再次碰到 $S$ 中的某一点。此过程无限持续。

求证:可在 $S$ 中选一点和过该点的一条直线,使得在对应的「风车」过程中,$S$ 中的所有点都将无限次地作为旋转中心。


首先考虑直线变换旋转中心时的状态。

  • 由于 $S$ 是有限集,因此由 $S$ 中任意两点确定的直线数量也是有限的。
  • 此外,直线在旋转过程中具有确定的方向。
  • 因此,「以某点为轴、沿某方向」的离散状态总数是有限的。

由于状态转移是确定且可逆的(即我们可以反向逆时针旋转回到上一状态),从任意一个状态出发,经过有限次变换后必将回到该状态。这说明风车过程必然包含一个循环

原问题可转化为:是否存在一种初始状态,使得该循环周期包含 $S$ 中的所有点?

为了方便讨论,我们为直线定义一个方向,从而区分直线的「左侧」和「右侧」。在旋转过程中,我们观察到以下规律:

  1. 若直线碰到并「吃进」左侧的点作为新轴点,原先的轴点则被「吐出」到直线的左侧。
  2. 若直线碰到并「吃进」右侧的点,同理,原轴点会被「吐出」到右侧。

结论:在「风车」过程中,直线左侧(及右侧)的点的数量始终保持不变。这就是本题的核心不变量

我们根据点集大小 $|S|$ 的奇偶性进行分类讨论,选择合适的初始直线以利用上述不变量。

当 $|S|$ 为奇数:$|S| = 2n + 1$。选取经过某点 $P$ 的直线,使得该直线左侧和右侧均恰好有 $n$ 个点。

  • 当直线旋转 $180^\circ$ 后,其方向与初始方向相反。
  • 由于不变量性质,当前直线的左侧和右侧依旧均有 $n$ 个点,所以直线必须过点 $P$。
  • 同时,原直线的「左侧区域」变成了当前直线的「右侧区域」,即左右区域的点进行了位置互换。
  • 由于直线是连续运动,对于任意一点,从一个区域变为另一个区域必须被直线扫过(即成为轴点)。
  • 结论:当直线以此特定方式分割点集时,在一个 $180^\circ$ 的周期内,所有点都会被扫过,且直线回到初始位置。因此所有点都将无限次地作为旋转中心。

当 $|S|$ 为偶数:$|S| = 2n$。我们需要稍作调整:

  • 定义直线上当前的轴点 $P$ 归属于「右侧」。
  • 选取一条直线,使得左侧有 $n$ 个点,右侧有 $n$ 个点(包含轴点 $P$)。
  • 旋转 $180^\circ$ 后,同理,直线左右两侧的点进行了位置互换。
  • 此时轴点 $P'$ 虽然不再是初始点 $P$,但使其再转动 $180^\circ$,则会回到点 $P$。
  • 结论:同样地,我们找到了一条直线,使其在转动 $360^\circ$ 后会回到初始位置,且所有的点都被扫过。

因此,无论 $|S|$ 奇偶,总存在一条直线使得风车过程遍历所有点。

参考

  1. 3Blue1Brown Video