您的位置:首页 > 其它

One Day One Step之平面分割问题

2014-02-20 00:13 393 查看
这几天校集训队集训,在做专题训练。昨天和今天练的是“排序,递归,和贪心”,里面有一道题,是线分割平面个数的,开始不会做,然后经过一番学习之后,终于理解了!特写出来与大家分享!



先来一道简单的吧!

平面内有n条直线,最多能把平面分成及部分。

其实这个问题不难,关键要抓准几个点,而且,这几个点对于这一类”线分割面“的题目是通用的,也就是说,掌握了这几个点的话这一类问题就是很简单的了。

一条直线如果要想把一个平面分割成最多的平面数,就必须与其他原来的直线都有一个交点(这里之所以是说直线是以为后面还有折线和弧线的情况)。

一条新的线能够把原来的平面分成的平面数取决于原来的平面数,以及这条线被与原来的线相交的点分割成的线段或者是射线的条数,即:第n条直线将平面分割的平面数=
原来即第(n - 1)条直线将平面分割的平面数 +第n条直线被相交点分割成的线段或者射线数或者说第n条直线与其余(n - 1)条线相交的点数加上2(两点确定一条直线以及首尾的两条射线线)


所以,我们现在就把问题归结为线与其他线相交的最多点数。根据第一点所说的,第n条直线最多能与其余的(n - 1)条直线有(n - 1)个交点。于是我们可以得到一个递推关系式:

F(n ) = F( n – 1 ) +(n + 1),其中,F(1) = 2。

解得:F(n) = ( n * n + n ) / 2 + 1。

接下来里一个问题:

一个圆弧与另外一个圆弧相交且有且只有2个交点,而且所有交点都不会重合,问n个相交圆弧能将平面分割成几个分割平面。

要解决这个问题还是得按照我们上面的讨论,即第n条圆弧能与其余(n - 1)条圆弧相交几个点!答案比较简单,因为题目已经说了,每个圆弧与其他圆弧有两个交点,所以,第(n - 1)条圆弧总共能有2
* (n- 1)个交点!但是,与上面的题目不同的是,这里是圆弧,所以两个点能产生两段新的圆弧,所以,综上:

F(n)= F(n-1) + 2 *(n-1),其中,F(1) = 2。

解得:F(n) = n * n – n + 2。

接下来是最后一个问题:

一条折线能够将一个平面分成两块,问n条折线能够将平面分成几个分割平面。

我们还是按照前面的方法来,不过有一点不一样,那就是,折线我们可以看成是两条线段构成的,所以,第n条折线的两条线段的每一条都能与其余的(n-1)条折线的两条线段有2 *(n
– 1)个交点,所以总共有4* (n - 1)个交点,能够组成4 *(n - 1)条线段和2条是射线,但是,由于这些线段中有两条适合在一起成为一个角的,所以,线段的数量要减去1。

综上:

F(n)= F(n-1) + 2 + 4 *(n - 1)- 1。

解得:F(n) = 2 * n * n – n + 1!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: