《编程之美》1.7 光影切割问题

由上图可知:

两条直线最多一个交点,将平面分成了4个区域;

三条直线最多三个交点,将平面分成了7个区域;可以推出:N条直线 M个交点,区域数为N+M+1。

可以推出:

每增加一条直线,如果增加m个交点,那么这条直线被新增加的m个交点,分成(m+1)段。每一段又会将原来的一个区域分成两块,因此,新增加了(m+1)个新区域。增加第N+1条直线时,最多与前面N条直线全部相交,增加n个交点。因此,最多增加n+1个区域。由此可得递推式:

f(n)代表n条直线时的区域的个数。

第n+1条直线最多和第n条直线 有n个交点。

所以区域数增加n+1。

解得:

这里首先用到了一个数学定理:

已知平面内有n条直线,这n条直线有m个交点(p条直线交于一点时,交点数计p-1)。则这n条直线把这个平面分成了n+m+1个平面。

这个定理的推论如下:

已知平面内有n条直线,则这n条直线最多可以把平面分成1+n+ 

更为优雅的一种写法是:  


如果换成折线呢?

增加第N+1条折线时,最多与前面的N条折线有 个交点,最多增加4n+1个区域,递推式为:

解得:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值