UTF8gbsn
Intro
0条直线的空间含有1个区域。一条直线把一个空间划分为2个。两条,可以分为4个区域。那么n条直线最多可以把一个平面空间分为多少各区域?针对这个问题,我们任然是采用三步走。
-
简单
-
公式或者递推
-
通项公式
Step 1
看看简单情况,
-
n = 0 → T ( 0 ) = 1 n=0 \rightarrow T(0)=1 n=0→T(0)=1
-
n = 1 → T ( 1 ) = 2 n=1 \rightarrow T(1)=2 n=1→T(1)=2
-
n = 2 → T ( 2 ) = 4 n=2 \rightarrow T(2)=4 n=2→T(2)=4
-
n = 3 → T ( 3 ) = 7 n=3 \rightarrow T(3)=7 n=3→T(3)=7
-
T ( n ) = ? T(n)=? T(n)=?
Step 2
第二步是为了分析问题的某种形式的解。可以是递推公式等。但是怎么分析这个问题。假如我们有n-1条直线已经存在这个平面里。当第n条直线出现,和其他直线相交的时候。我们发现,只要和其中一条直线相交,那么这条直线左边的空间将被分为2半。也就是说,只要只要相交就会有一个空间区域被分开为两个。那么n-1直线和第n条直线有多少个交点?n-1个交点。而最终直线出发的那个空间也会被分为2半。这样我们可以说,只要有n-1交点,那么就会有n个区域被分成两半
T ( n ) ⩽ T ( n − 1 ) + n T(n) \leqslant T(n-1)+n T(n)⩽T(n−1)+n
上界证明了,那么看看下界。第n条直线,和前面n-1条直线,只要不平行。必定也就是至少有n-1个交点。所以
T ( n ) ⩾ T ( n − 1 ) + n T(n) \geqslant T(n-1)+n T(n)⩾T(n−1)+n
故而
T ( n ) = T ( n − 1 ) + n T(n) = T(n-1)+n T(n)=T(n−1)+n
Step 3
我们来看看通项公式
T ( n ) = n + T ( n − 1 ) = n + n − 1 + T ( n − 2 ) = n + n − 1 + n − 2 + ⋯ + 1 + 1 T(n)=n+T(n-1)=n+n-1+T(n-2)=n+n-1+n-2+\cdots+1+1 T(n)=n+T(n−1)=n+n−1+T(n−2)=n+n−1+n−2+⋯+1+1
使用高斯求和公式,我们可以得到
T ( n ) = n ( n + 1 ) 2 + 1 T(n)=\frac{n(n+1)}{2}+1 T(n)=2n(n+1)+1
The End
变种问题,假如直线不是笔直的直线。而是呈锐角的折线。那么n条折线最多可以把一个平面空间划分为多少个区域?
根据前面的介绍我们观察到
没一条折线减少2个区域。而且是最少减少2个区域。只有如第一幅图的布局才会让相交点最少。这样减少的区域才最少。我们可以得到
Z n = L 2 n − 2 n = 2 n ( 2 n + 1 ) / 2 + 1 − 2 n = 2 n 2 − n + 1 , for n ⩾ 0 \begin{aligned} \mathrm{Z}_{\mathrm{n}}=& \mathrm{L}_{2 \mathrm{n}}-2 \mathrm{n}=2 \mathrm{n}(2 \mathrm{n}+1) / 2+1-2 \mathrm{n} \\ &=2 \mathrm{n}^{2}-\mathrm{n}+1, \quad \text { for } \mathrm{n} \geqslant 0 \end{aligned} Zn=L2n−2n=2n(2n+1)/2+1−2n=2n2−n+1, for n⩾0