分割面、空间

分割面、空间

直线分割平面

问题描述: 给 n 条直线,问最多能分割出多少个区域?

设 n-1条直线分割出了 f[n-1] 个区域,第 n 条直线想分割最多区域就要和 n-1 条直线相交,从而得到 n-1 个点 ,n-2 条线段 ,每条线段将区域一分为二 ,两端射线也将区域一分为二,即多出来 2 + (n-2 )个区域。

推导:
f [ n ] = f [ n − 1 ] + 2 + ( n − 2 ) = f [ n − 1 ] + n = f [ n − 2 ] + ( n − 1 ) + n = f [ n − 3 ] + ( n − 2 ) + ( n − 1 ) + n = f [ 0 ] + 1 + 2 + … … + ( n − 1 ) + n = n ∗ ( n + 1 ) / 2 + 1 \begin{aligned} f[n]&=f[n-1]+2+(n-2)\\ &=f[n-1]+n\\ &=f[n-2]+(n-1)+n\\ &=f[n-3]+(n-2 )+(n-1)+n\\ &=f[0]+1+2+……+(n-1)+n\\ &=n*(n+1)/2+1 \end{aligned} f[n]=f[n1]+2+(n2)=f[n1]+n=f[n2]+(n1)+n=f[n3]+(n2)+(n1)+n=f[0]+1+2++(n1)+n=n(n+1)/2+1

折线分割平面

问题描述: 给 n 条折线,问最多能分割出多少个区域?hdu-2050

设 n-1 条折线分割出 f[n-1] 个区域,第 n 条直折线想分割最多区域也要和 n-1 条折线的边相交 ,即 2 *(n-1)条线,那么新增 4 *(n-1)条线段,射线数为 2 ,但是在另一端(v型端)两线段只能增加一个区域。

推导:
f [ n ] = f [ n − 1 ] + 4 ∗ ( n − 1 ) + 2 − 1 = f [ n − 1 ] + 4 ∗ ( n − 1 ) + 1 = f [ n − 2 ] + 4 ∗ ( n − 2 ) + 4 ∗ ( n − 1 ) + 2 = f [ 1 ] + 4 + 4 ∗ 2 + … … + 4 ∗ ( n − 1 ) + ( n − 1 ) = 2 ∗ n 2 − n + 1 \begin{aligned} f[n]&=f[n-1]+4*(n-1)+2-1\\ &=f[n-1]+4*(n-1)+1\\ &=f[n-2]+4*(n-2)+4*(n-1)+2\\ &=f[1]+4+4*2+……+4*(n-1)+(n-1)\\ &=2*n^2-n+1 \end{aligned} f[n]=f[n1]+4(n1)+21=f[n1]+4(n1)+1=f[n2]+4(n2)+4(n1)+2=f[1]+4+42++4(n1)+n1=2n2n+1

平面分割空间

问题描述: 用刀切圆形蛋糕,n 刀最多能把蛋糕切成多少块?hdu-1290

二维的分割与交点有关,那么三维与交线有关吗?当 n-1刀时,有 p[n-1] 块蛋糕,那么第 n 刀一定是和前n-1 刀(假设切完以后蛋糕之间没有分开)平面相交,最多有 n-1 条交线,那么n-1 条交线将第n 个平面分为 f[n-1]个区域(直线分割平面)而这些平面将原有的空间一分为二,则增加了p[n-1]块蛋糕。

推导:
p [ n ] = p [ n − 1 ] + f [ n − 1 ] = p [ n − 2 ] + f [ n − 2 ] + f [ n − 1 ] = p [ 1 ] + f [ 1 ] + … … + f [ n − 1 ] = 2 + ( 1 ∗ 2 + 2 ∗ 3 + 3 ∗ 4 + … … + ( n − 1 ) ∗ n ) / 2 + ( n − 1 ) = n + 1 + ( 2 ∗ 2 + 3 ∗ 3 + 4 ∗ 4 + … … + n ∗ n − 2 − 3 − 4 − … … − n ) / 2 = ( n 3 + 5 ∗ n ) / 6 + 1 \begin{aligned}p[n]&=p[n-1]+f[n-1]\\&=p[n-2]+f[n-2]+f[n-1]\\&=p[1]+f[1]+……+f[n-1]\\&=2+(1*2+2*3+3*4+……+(n-1)*n)/2+(n-1)\\&=n+1+(2*2+3*3+4*4+……+n*n-2-3-4-……-n)/2\\&=(n^3+5*n)/6+1\end{aligned} p[n]=p[n1]+f[n1]=p[n2]+f[n2]+f[n1]=p[1]+f[1]++f[n1]=2+(12+23+34++(n1)n)/2+(n1)=n+1+(22+33+44++nn234n)/2=(n3+5n)/6+1

圆形(封闭曲线)分割平面

问题描述: 有 n 个圆形,问最多能分割出多少个区域?

设前 n-1 个圆形有 f[n-1] 分割个区域,第 n 个圆要割出最多个区域,那么要与前 n-1 个圆相交,则多出 2 * (n-1)个线段,增加了2 *(n-1)个区域。

推导:
f [ n ] = f [ n − 1 ] + 2 ∗ ( n − 1 ) = f [ n − 2 ] + 2 ∗ ( n − 2 ) + 2 ∗ ( n − 1 ) = f [ 1 ] + 2 + 2 ∗ 2 + … … + 2 ∗ ( n − 1 ) = n 2 − n + 2 \begin{aligned}f[n]&=f[n-1]+2*(n-1)\\&=f[n-2]+2*(n-2)+2*(n-1)\\&=f[1]+2+2*2+……+2*(n-1)\\&=n^2-n+2\end{aligned} f[n]=f[n1]+2(n1)=f[n2]+2(n2)+2(n1)=f[1]+2+22++2(n1)=n2n+2

总结

无论是线分割面,还是面分割空间,都是让第 n 个面或线与前面的 n-1 个面或线相交,从而得出线段和射线个数;多出 k 条线段即多出了 k 个区域,因为线段将空间一分为二。射线也像线段一样,分割区域;折线是因为有两个线段相交成V型,只分割出1块区域。

学习博客:https://www.cnblogs.com/chaosheng/archive/2012/01/26/2329583.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值