\chapter{几何中的组合问题} \section{对角线的交点} \begin{definition} 若多边形的每个内角都小于$\pi$,则称其为凸多边形。 \end{definition} 考虑一个凸$n$变形。假设它的任意三条对角线的不相交在同一点,那么这个凸$n$变形的对角线共有多少个交点? \begin{figure}[H] \begin{center} \begin{tikzpicture} \node[above] at (0,2) {$A$}; \node[left] at (-2,1) {$B$}; \node[left] at (-1.5,-2) {$C$}; \node[below] at (0.5,-3) {$D$}; \node[right] at (2.5,-2.2) {$E$}; \node[right] at (3,0.8) {$F$}; \draw (0,2)--(-2,1)--(-1.5,-2)--(0.5,-3)--(2.5,-2.2)--(3,0.8)--cycle; \draw (0,2)--(-1.5,-2)--(2.5,-2.2)--cycle; \draw (-2,1)--(0.5,-3)--(3,0.8)--cycle; \draw (0,2)--(0.5,-3); \draw (-2,1)--(2.5,-2.2); \draw (-1.5,-2)--(3,0.8); \end{tikzpicture} \end{center} \end{figure} 每个对角线的交点都与对角线的四个顶点组成的四边形一一对应,因此总数为$\dbinom{n}{4}$。 \section{分割区域数} \begin{definition} 若一组直线中任意一对直线不平行、任意三个不共点,则称这组直线\newnoun{在常态下}{in general position}。 \end{definition} \begin{theorem} 平面上$n$条在常态下的直线将平面分成$1 + \dfrac{n(n+1)}{2}$个区域。 \end{theorem} \begin{proof} 有0条直线时,有1个区域。设$n-1$条直线时,结论成立。那么当有$n$条直线时,新添加的一条直线被分为了$n$段,每一段都将这一段所在的区域分为两半,即区域数增加了$n$个。因此总数为 \[1 + \frac{n(n-1)}{2} + n = 1 + \frac{n(n+1)}{2}\eqper\qedhere\] \end{proof} 或者还有另一种证法: \begin{proof} 用矩形把所有的交点都框住,并保证矩形的边不与任何一条直线平行。我们可以把每个区域都与这个区域的最靠下的顶点(或者是矩形的边的某个部分)建立一一映射,即区域的总数为$n+1 + \dbinom{n}{2} = 1 + \dfrac{n(n+1)}{2}$。 \end{proof} \section{凸多边形:Happy End Problem} 试证明:平面上任5个点(任三点不共线)中总能选出四个点组成凸四边形。 \begin{proof} 称包含这五个点的最小凸多边形为凸包。 按凸包的边数分类: \begin{figure}[H] \subfloat[五条边]{ \begin{tikzpicture} \node[draw=black, circle] (a) at (18:2) {}; \node[draw=black, circle] (b) at (90:2) {}; \node[draw=black, circle] (c) at (162:2) {}; \node[draw=black, circle] (d) at (234:2) {}; \node[draw=black, circle] (e) at (306:2) {}; \draw (a)--(b)--(c)--(d)--(e)--(a); \end{tikzpicture} } \hfill \subfloat[四条边]{ \begin{tikzpicture} \node[draw=black, circle] (a) at (-1,1) {}; \node[draw=black, circle] (b) at (2,1.2) {}; \node[draw=black, circle] (c) at (-0.8,-1) {}; \node[draw=black, circle] (d) at (1, -0.8) {}; \node[draw=black, circle] at (0,0) {}; \draw (a)--(b)--(d)--(c)--(a); \end{tikzpicture} } \hfill \subfloat[三条边]{ \begin{tikzpicture} \node[draw=black, circle] (a) at (-1.5,-1) {}; \node[draw=black, circle] (b) at (1.5,-1) {}; \node[draw=black, circle] (c) at (0,2) {}; \draw (a)--(b)--(c)--(a); \node[draw=black, circle] (d) at (-0.4,0.3) {}; \node[draw=black, circle] (e) at (0.5, 0) {}; \draw (d)--(e); \draw[blue!30] (a)--(d); \draw[blue!30] (b)--(e); \end{tikzpicture} } \end{figure} 前两种情况显然。对第三种情况,根据鸽巢原理,一定有两个在边界上的点在内部点相连得到的直线的同一侧。将这四个点连接起来就能得到一个凸四边形。 \end{proof} 推广:最多在平面上找多少个点,使得其中找不到凸$n$边形? 这个问题至今没有解决,猜想为$2^{n-2}$个。