线切割平面问题

直线切割平面

当一个平面上没有直线的时候,可以看成被分成了1份;

有1条直线的时候,没有结点,多了1部分;

有2条直线的时候,多了1个节点,多了2部分;

有3条直线的时候,多了2个节点,多了3部分;

······

 第n条直线

    0

    1

    2

     3

    4

 增加节点数

    0

    0

    2

     3

    4

 增加区域数

    1

    1

    2

     3

    4

 

也可以理解为当添加第i条直线的时候,最多可以穿过i-1条直线,将新的直线分成i份,而这i份可以将i个部分分成2i份,也就是多了i各部分。

 

于是,a[i]=a[i-1]+i;

      a[0]=1;

数学公式可以写为f(n) =1+1+2+3+4+···+i

                  =i*(i+1)/2+1

 

 

V型折线切割平面

(1)第一种思路

 

  折线个数

      0

      1

      2

      3

 增加节点数

      0

      0

      4

      8

 增加部分数

      1

      1

      5

      9

 

因为折线的原因,每次添加折线的时候有折点的那部分不会增加分割部分,也就是有几个节点就会多出几个部分,而且和折点部分还会再多出一个,也就是

a[i]=2*2*(i-1)+1+a[i-1];

a[0]=1;

数学公式

第n条折线增加2*2*(i-1)+1,

第n条折线是分割的部分为f(n)=(1+4*n-3)*n/2+1=2n^2-n+1。

 

(2)第二种思路

把折线看成两条相交的直线,而每次增加直线的时候都会因为折点而少2个分割部分,于是第i条折线时,f(n)=2i(2i+1)/2-2i+1=2n^2-n+1.

 

闪电型折线切割平面

与上述内容基本相同,第一种思路a[i]=a[i-1]+9(i-1)+1;a[0]=1;数学公式f(n)=(9(i-1)+2)*n/2+1

第二种思路f(n)=3n(3n+1)/2-5n+1

 

封闭曲线切割平面

因为是封闭曲线,每次切割时要与之前所有的曲线相交,也就是第i个曲线会与i-1个封闭曲线相交,有2(i-1)个交点,多产生2(i-1)个分割部分。

a[i]=a[i-1]+2*(i-1)

a[0]=1

a[1]=2

数学公式f(n)=2*(n-1)*n/2+2

         =n^2-n+2

三角形切割平面

因为是封闭曲线,每次切割时要与之前所有的曲线相交,也就是第i个曲线会与i-1个封闭曲线相交,有2(i-1)个交点,多产生2(i-1)个分割部分。

a[i]=a[i-1]+2*3*(i-1)

a[0]=1

a[1]=2

数学公式f(n)=2*(n-1)*n/2+2

         =3*n^2-3*n+2

平面切割空间

第i个平面切割i-1个平面,最多与i-1个平面相交,产生i-1条交线,一个平面将原有空间分成两个部分,增加一个新的部分,由前面的结论可知,i-1条交线会将这个平面分成

i*(i-1)/2+1份,于是可知,第i个平面会增加i*(i-1)/2+1部分的空间。记b[i]=i*(i-1)/2+1;a[i]=a[i-1]+b[i];a[0]=1;b[0]=0;a[1]=2;b[1]=1;a[2]=4;b[2]=2;

数学公式为f(n)=(2*1+3*2+4*3+···+i*(i-1))/2+(i-1)+2==(i^3+5i)/6+1

你可能感兴趣的:(算法,算法题题解)