【具体数学 读书笔记】1.2 Lines in the Plane
本节介绍平面划分问题,即n条直线最多把一个平面划分为几个区域(region)。
问题描述:
"What is the maximum number Ln of regions defined by n lines in the plane?"
这个问题最初由瑞士数学家Jacob Steiner在1826年解决。
延续上一节的解题步骤,即首先关注小规模数据,观察出结果,然后猜测一个递推式并从理论上证明,最后由递推式导出"closed form"(通项式)。下面具体整理解题步骤:
1. 观察得出小规模数据的结果,尝试给出递推式:
L1 = 2
L2 = 4 = 2 + 2
L3 = 7 = 4 + 3
现在可以猜测一个递推式:Ln = Ln-1 + n
2. 从理论上证明递推式:
首先对于直线分平面问题有一个结论: a straight line can split a convex region into at most two new regions, which will also be convex. 即一条直线最多可以把一个凸的区域分成两个凸的区域。
(对于convex,旁注上有如下定义:a region is convex if it includes all line segments between any two of its points.)
接下来可以观察到如下结论:
for n>0, the nth line increases the number of regions by k
iff. it splits k old regions
iff. it hits the previous lines in k-1 different points.
由于已有n-1条直线,所以第n条直线最多和已有直线产生n-1个交点,所以k的最大值为n,由此一个可行解,它是充分的 Ln <= Ln-1 + n (n>0)
接下来试图说明它的必要性:只要把第n条直线放在与前n-1条都不相交的方向,那么第n条直线必和前n-1条直线各有一个交点。又因为Ln-1为最大值,所以保证了前n-1条直线产生的n-2个交点互异,可以做到第n条直线产生的n-1个新交点彼此互异,且和前n-2个交点也互异。由此 Ln >= Ln-1 + n (n>0)。
所以取等号了,加上对平凡情况的约定,构成如下递推式:
L0 = 1
Ln = Ln-1 + n (n>0)
3. 由递推式求通项式:
"we can often understand a recurrence by 'unfolding' or 'plugging in' it all the way to the end." 即逐项代入,直至平凡情况,看展开后的值是否易求。
Ln = Ln-1 + n
= Ln-2 + (n-1) + n
= ...
= L0 + 1 + 2 + ... + (n-1) + n = 1 + Sn
其中Sn是很常见的前n项整数和,又叫"triangular numbers",因为它是n行的三角形摆放的保龄球的个数;也可以叫它前缀和吧。传说高斯在9岁时给出的通项式~~Sn = n(n+1)/2。由此得到Ln的通项式 Ln = n(n+1)/2 + 1
作者说我们不妨记住Sn数列的小规模值,如下表:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
Sn | 1 | 3 | 6 | 10 | 15 | 21 | 28 | 36 | 45 | 55 | 66 | 78 | 91 | 105 |
接下来作者还介绍了原问题的一个变种----折线分平面问题。
一条折线(bent line, each containing one "zig")可以看作是两条直线相交得到;因抹除了两条射线,所以比两条直线分成的区域数减少一半。
如果每条折线的zig point都放置在交点“外围”,那么在放置第n条折线时(与之前的所有折线交于4个点),相比2n条直线分成的平面数,每条直线会减少2个交点,也就减少了两个区域。由此得到如下递推式及通项式:
Zn = L2n - 2n
= 2n(2n+1)/2 + 1 - 2n
= 2n^2 - n + 1
【具体数学 读书笔记】1.2 Lines in the Plane的更多相关文章
- 3D数学读书笔记——3D中的方位与角位移
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/25339595 方位和角位移 ...
- 3D数学读书笔记——矩阵基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031 矩 ...
- 3D数学读书笔记——四元数
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/25400659 什么是四元数 ...
- 3D数学读书笔记——矩阵基础番外篇之线性变换
本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...
- 3D数学读书笔记——向量运算及在c++上的实现
本系列文章由birdlove1987编写.转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24782661 ...
- 3D数学读书笔记——多坐标系和向量基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhurui_idea/article/details/24662453 第一个知识点 ...
- 【具体数学--读书笔记】1.1 The Power of Hanoi
这一节借助汉诺塔问题引入了"Reccurent Problems". (Reccurence, 在这里解释为“the solution to each problem depend ...
- 3D数学读书笔记——矩阵进阶
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25242725 最终要学习矩阵 ...
- 《Java编程思想》读书笔记(二)
三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...
随机推荐
- C#开发SQLServer的Geometry和Geography存储
原文:C#开发SQLServer的Geometry和Geography存储 SQL Server2008推出后最大的变化就是提供了支持空间数据存储的Geometry和Geography,这个也是如果将 ...
- 【Mysql 调用存储过程,输出参数的坑】
玛德,数据行都返回过来了,就是没有输出参数!!! 扒官方设计文档:这么一段 雷死人了!!! When a stored procedure is called using MySqlCommand.E ...
- mybatis写demo时遇到的问题
写demo的时候,用mybatis的配置文件链接数据库,始终链接不上,太急人了.仔细查阅,发现在mysql中新增的表没有事务支持.还有就是mysql搜索引擎支持的不对.我换了一下 innodb的引擎, ...
- python刷取CSDN博文访问量之二
python刷取CSDN博文访问量之二 作者:vpoet 注:这个系列我只贴代码,代码不注释.有兴趣的自己读读就懂了,纯属娱乐,望管理员抬手 若有转载一定不要注明来源 #coding=utf ...
- python语言磁力搜索引擎源码公开,基于DHT协议
原文地址: http://www.cnblogs.com/huangxie/p/5550680.html
- crm操作知识库文章实体
using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft ...
- 【git学习二】git基础之git管理本地项目
1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...
- Android应用程序窗口(Activity)的测量(Measure)、布局(Layout)和绘制(Draw)过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8372924 在前面一篇文章中,我们分析了And ...
- mysql5.7 二进制包安装
1. 下载包 wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 2. 解 ...
- jq操作cookie
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...