网站大量收购独家精品文档,联系QQ:2885784924

数论算法及计算几何算.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第八章数论算法及计算几何算法8.5凸包问题对于更大的集合,在直观上,可以把S中的每个点看作订在地上的木桩,那么凸包就是将所有木桩围起来的一个拉紧的橡皮绳的形状,如图8-1所示。添加标题如果三点共线,则凸包是以距离最远的两个点为端点的线段。添加标题如果S是由三个不共线的点组成的集合,那么凸包是以这三个点为顶点的三角形;添加标题如果点集S是两个点的集合,显然它的凸包是连接这两个点的线段;添加标题给定一个点集S={P0,P1,…,Pn-1},它的凸包是一个最小的凸多边形P,且满足S中的每个点或者在P的边界上或者在P的内部。添加标题问题提出解决方法:穷举搜索法

分治法凸包问题的穷举搜索法1、算法思想:根据凸多边形的定义,对于一个由n个点组成的集合S中的任意两个点Pi和Pj,当且仅当该集合中的其它点要么位于穿过Pi和Pj直线的同侧,要么位于线段PiPj上。则线段PiPj是该集合凸多边形边界的一部分。对每一个点都做一遍检验之后,满足条件的线段就构成了该凸包的边界。算法求解步骤:对于集合中的任意两点Pi和Pj,定义穿过两点Pi和Pj的直线方程。(x-xi)/(xj-xi)=(y-yi)/(yj-yi)将点集S中的其余点代入直线方程,然后检查是否位于线段同侧,如果不是,说明线段PiPj不是点集S的凸多边形的边界。否则,PiPj是凸多边形的边界。对点集中的每个点,重复上述步骤1和步骤2,直到找出全部多边形的边界。算法程序语言描述详见课本算法分析点集中的点构成的线段数目最多为n(n-1)/2,对每一条线段,最坏情况要检查点集中其余n-2个点属于哪个半平面,故算法的时间复杂性为O(n3)单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。您的内容已经简明扼要,字字珠玑,但信息却千丝万缕、错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容易造成观者的阅读压力,适得其反。正如我们都希望改变世界,希望给别人带去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露滋养。恰如其分地表达观点,往往事半功倍。凸包问题的分治法1算法思想将点集S中的点按照x坐标升序排序,x坐标相同的按照y坐标升序排序,排好序的序列存放在点结构数组P中。那么最左边的点P0、最右边的点Pn-1肯定是凸包上的点。线段P0Pn-1将集合S中的点分成两个集合S1和S2。2整个集合的凸包由上包和下包构成。如图8-2所示。单击此处添加标题子集S1的凸包由线段P0Pn-1作为下边界、多节链条作为上边界组成。这条上边界称为上包。单击此处添加标题子集S2的凸包由线段P0Pn-1作为上边界、多节链条作为下边界组成。这条下边界称为下包。单击此处添加标题2、算法求解步骤构造上包步骤:找到子集S1中的点Pmax,它是距离线段P0Pn-1最远的点连接,找出S1中位于直线左边的点,这些点构成集合S11;找出S1中位于直线左边的点,这些点构成集合S12;△P0PmaxPn-1内部的点不予考虑。递归构造S11和S12的上包,然后简单地将它们连接起来,得到S1的上包。构造下包步骤:找到子集S2中的点Pmin,它是距离线段P0Pn-1最远的点连接,找出S2中位于直线右边的点,这些点构成集合S21;找出S2中位于直线右边的点,这些点构成集合S22;△P0PminPn-1内部的点不予考虑递归构造S21和S22的下包,然后简单地将它们连接起来,得到S2的下包。算法程序语言描述详见课本8.6最接近点对问题问题提出最接近点对问题要求给定平面上n个点组成的集合S,找出其中n个点组成的点对中距离最近的一对点。该问题具有很大的实际应用价值,例如,一个控制空中或者海上交通的系统就需要了解2个最近的交通工具,以预测可能产生的相撞事故。解决问题方法穷举搜索、分治法(略)最接近点对问题的穷举搜索法1、算法思想分别计算点集中每一对点的距离Dij,从中找出值最小的那对点。为了避免点对的重复计算,算法只考虑ij的情况.2、算法描述Doubleshortdis(){doubletemp=∞,d=0;for(inti=0;in-1;i++)for(intj=i+1;jn,j++)d=sqrt((pow(p[i].x-p[j].x)),2)+pow((p[i].y-p

文档评论(0)

135****7720 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档