递归之线.面切割问题

 

方法一:

1 .直线切割面

 有n-1条直线时,平面最多被分成了f(n-1)个区域。第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。第n条直线与前n-1有n-1个·交点,增加了n-2条线段和两条射线。增加了n-2+2个平面区域。

即f(n)=f(n-1)+n

         =f(n-2)+n-1+n

         ......

         =f(1)+2+3+4+5...+n

         因为f(1)=2

         所以f(n)=n*(n-1)/2+1

2 .折线分割面   

例题    http://acm.hdu.edu.cn/showproblem.php?pid=2050

有n-1条折线时,平面最多被分成了f(n-1)个区域。第n条折线要是切成的区域数最多,就必须与前n-1条折线的边即2*(n-1)线段相交且不能有同一交点。则新增线段数为4*(n-1),射线数为2,折线本身相连的两线段增加一个平面区域。

即f(n)=f(n-1)+4(n-1)+2-1

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

         =2*n*n-n+1

3 .三角形分割平面

例题:http://acm.hdu.edu.cn/showproblem.php?pid=1249

有n-1个三角形时,平面最多被分成了f(n-1)个区域。第n个·三角形要是切成的区域数最多,就必须与前n-1三角形都相交。第n个三角形的每一条边都被分割成了2*(n-1)-1条线段和两条半个的线段。相当于增加了2*(n-1)条线段。整个三角形增加了3*2*(n-1)条线段,所以也就是增加了6*(n-1)个面。

即f(n)=f(n-1)+6*(n-1)

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

方法二:

这类题也可以直接代入方程组解方程组获得它的递推表达式。如果计算能力可以,我还是比较喜欢这个简单粗暴的方式,分析找规律脑壳疼啊。这类题如果是二维的,就是线切割面,就代入一元二次方程组,如果是三维的,即面切割体,就代入一元三次方程组。

例如折线分割面   这道例题,一元二次方程a*x^2+b*x+c=d,f(1)=2,f(2)=7,f(3)=16。列出a*1^2+b*1+c=2

                                                                                                                                        a*2^2+b*2+c=7

                                                                                                                                        a*x^3+b*3+c=16

解出a=2,b=-1,c=1,则f(n)=2*n*n-n+1。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值