开头:今天刚考完试,还有就是下雨就不太想出去了,长春也有点冷,咱们接着上次写的继续写,我也把这个发在其余博客上了,感受o(╯□╰)o,没人看啊,哈哈,自嘲结束,今天写递归的下一节平面中的直线(Lines in the Plane)
1.2平面中的直线(Lines in the Plane) 算法
不黑不吹,这本书没一节的故事也是很吸引人的:一我的用刀在乎大利馅饼上作n次直线切割,能把馅饼切成多少份?或者,较正式地说:由平面中n条直线肯定的最大区域数Ln是多少?瑞士数学家Jacob Steiner在1826年首先予以解决(图论、算法中的Steiner树以其名字命名,该问题是NPC的) 函数
套路来了,其实就是老的套路: spa
(1)n=0:L0=1 orm
(2)n=1:L1=2 递归
(3)n=2:L2=4 博客
记住从最小的开始,没有直线的平面具备1个区域;有1条直线的平面具备2个区域;有2条直线的平面有4个区域;但当咱们加入第3条直线,咱们当即发现,无论如何放前2条直线,它至多能切3个老区域; 数学
所以L3=4+3=7是咱们能够获得的结果. 扩展
冷静一下.....仔细想一想....... im
直觉上来看,直线对区域的剖分,表现为在区域中加上了1条分界线,也正是区域边界与直线相交造成的一段 总结
若是将直线划分红不一样的段(闭区段和开区段都算),则每一个段剖分1个区域,每剖分1个区域,新增长1个区域。
所以,新增长的区域数应该等于新直线被划分的段数!!!
每条直线至多相交一次,所以新直线最多与原来的n - 1直线相交n – 1次,造成n个段(注意两端开放的段)
倒着反推再反推,新直线最多剖分出来n个新的区域!!!
因此咱们能够获得
Ln ≤ Ln-1 + n
和上篇的汉诺塔同样,是时候拿出数学概括法了,易证咱们能达到此公式中的等式,咱们只要使第n条直线不和其余任何直线平行(所以它和其余任何直线相交),且使它不经过任何存在的交点(它和其余任何直线交于不一样位置),因此递归式为
L0=1;
Ln=Ln-1+n(n>0)
下面来解这个递归式:
Ln=Ln-1+n;
=Ln-2+(n-1)+n
=L0+1+2+....+(n-2)+(n-1)+n
=1+Sn
其中Sn=1+2+3+...+(n-1)+n。
这些值也称为三角数,由于Sn是n行三角形阵中球状针孔个数.例如,一般4行阵 * * * *
* * *
* *
*
有S4=10个针孔
小学其实咱们就会算Sn的和,因此Ln=n*(n+1)/2+1(n>=0)
要进行严格的数学概括证实,关键概括步是Ln=Ln-1+n=1/2n(n+1)+1
关于书上讲的闭形式:对一个量f (n)的表达式而言,若是可以最多用固定次数(这次数独立于n )的“经常使用”标准运算来算出结果,则称其为封闭形式的。So,
1、递归方程不是封闭形式,由于求解次数依赖于n。
2、咱们获得的Tn和Ln的结果是封闭形式的:
Tn :1次exp,1次—
Ln :2次+,1次× ,1次÷
3、1 + 2 + … + n之类的和不是封闭的(用…省略了中间的加法计算,其次数与n有关)
4、n(n+1)/2等表达式是封闭的( 1次+,1次×,1次÷)
5、n!是否是呢?
关于n!等封闭形式的例外情形:
简单闭形式的总数是有限的,而一些经常使用、重要的递归方程并无简单闭形式
为了更好地表达数学运算结果,咱们就增长了一些“经常使用”的标准运算,以扩展封闭形式的范围。例如阶乘n! (尽管它的等价形式1·2·…·n并非封闭的),也就是说计算阶乘被视为1次运算。
平面中的直线—变形
下面考虑Lines in Plane问题的变形:假设用弯曲线代替直线,并且每条弯曲线都含有一个“锐角的锯齿形转角”,那么平面中n条弯曲线围成的区域最多有多少呢?
先来观察一下n = 1和n = 2的情形:
容易看出:每加入1条弯曲线,就像加入了2条直线,只是这“两条”直线在交点处没有延伸,所以致使了区域2、3、4的合并(3变1):
每加入1条新弯曲线,在新增长区域的数量中都要至少减去2。同时,若是把拐点地放到一个开区域,使得隐去的直线不会与原来的直线相交,咱们只会减小2个区域
也就是说,新弯曲线增长的区域数为2n – 2 (先像2条直线同样考虑区域的剖分,获得2n,再考虑区域的合并,获得-2)
Zn = Zn-1 + 2n - 2
或者,先统一地像2n条直线同样考虑区域的剖分,获得L2n;再考虑区域的合并,获得-2n,因此
Zn = L2n – 2n
= 2n(2n + 1) / 2 + 1 – 2n
= 2n2 – n + 1
对Ln和Zn的封闭形式进行比较,咱们发现对于大的n,有下面的关系,
所以,弯曲线状况获得的区域数目大概是直线状况的4倍。(第9章会讨论如何分析整函数的近似状态,符号‘~’的定义可见9.1节,其实学太高数的应该知道这什么。。。。)
总结:其实这小节不是很难的,下一节就有点难了,我但愿我能坚持写下去,也能坚持把书看完,虽然很吃力,但我更想看高老头的TAOCP,应该算是神做了,号称计算机中的圣经啊,昨天母亲节,谢谢个人母亲。。你们也应该多去关心一下家人,加油,我但愿我每星期都能写那么一点点。。。