首页 > 代码库 > 分割问题

分割问题

[a]n条直线最多分平面问题

n条直线,最多可以把平面分为多少个区域?

见K 切糕

递推关系:都将原来所有的区域分成两半,因此第n条直线会在原来的基础上再添加n个平面

f[0]=1,f[1]=2...f[n]=f[n-1]+n 推导公式f[n]=n*(n+1)/2+1

[b]a的改进

每次使用两条直线分割?

即是n相当于2n

f[0] = 1
f[1] = 4
f[2] = 11
...
f[n]= f(n - 1) + 2 * n - 1 + 2 * n = f(n - 1) + 4 * n - 1

f[n]=1+2*n*n+n

推导复杂,直接把n用2n代入即可

[c]折线分割平面

n条折线分割平面的最大数目?

见HDU2050

 考虑b问题,直线每次将分割的平面分为4份,而折线为两份,每次少两份

f(n)
= f(n - 1) + 4 * n - 1 - 2
= f(n - 1) + 4 * n - 3

f[n]=1+2*n^2-n

solution 2:

分割平面的个数=交点个数+顶点个数+1
令f(n-1)为前n-1条折线分割的平面数,当添加第n条折线时。
因为每一条边与前n-1条折线的两条边都相交,故增加的交点数为2*2*(n-1),顶点增加1,故
f(n)=f(n-1)+4(n-1)+1
f(n-1)=f(n-2)+4(n-2)+1
....
f(2)=f(1)+4*1+1
f(1)=2
f(n)-2=4((n-1)+(n-2)+...+1)+(n-1)=4*((1+n-1)*(n-1)/2)+n-1=2(n*n-n)+n-1
f(n)=2n^2-n+1

可以得出公式f(n)=2n^2-n+1

[d]封闭曲线分平面问题

如设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数?

Analysis:

当n-1个圆时,区域数为f(n-1).那么第n个圆就必须与前n-1个圆相交,则第n个圆被分为2(n-1)段线段,增加了2(n-1)个区域。
Solution:

f(n)=f(n-1)+2(n-1)     
     =f(1)+2+4+……+2(n-1)
     =n^2-n+2

[e]平面分割空间问题

hdu1290

由二维的分割问题可知,平面分割与线之间的交点有关,即交点决定射线和线段的条数,从而决定新增的区域数。试想在三维中则是否与平面的交线有关呢?当有n-1个平面时,分割的空间数为f(n-1)。要有最多的空间数,则第n个平面需与前n-1个平面相交,且不能有共同的交线。即最多有n-1 条交线。而这n-1条交线把第n个平面最多分割成g(n-1)个区域。(g(n)为(1)中的直线分平面的个数)此平面将原有的空间一分为二,则最多增加g(n-1)个空间。

f=f(n-1)+g(n-1)    ps:g(n)=n(n+1)/2+1
=f(n-2)+g(n-2)+g(n-1)
……
=f(1)+g(1)+g(2)+……+g(n-1)
=2+(1*2+2*3+3*4+……+(n-1)n)/2+(n-1)
=(1+2^2+3^2+4^2+……+n^2-1-2-3-……-n )/2+n+1
=(n^3+5n)/6+1

[f]Summary

  • n条直线将平面分为n*(n+1)/2+1
  • n条折线将平面分为2n^2-n+1
  • n条封闭曲线将平面分为n^2-n+2
  • n个平面将空间分为(n^3+5n)/6+1

[g]参考资料

分割问题 wu_lai

分割问题