谁可以给我一个谁有多余的qq百度帐号

简单图形问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
简单图形问题
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置:
>>>问题探究(1)请在图①的正方形ABCD内,画出使∠APB=90°的一个点P,并..
问题探究(1)请在图①的正方形ABCD内,画出使∠APB=90°的一个点P,并说明理由;(2)请在图②的正方形ABCD内(含边),画出使∠APB=60°的所有的点P,并说明理由;问题解决(3)如图③,现有一块矩形钢板ABCD,AB=4,BC=3,工人师傅想用它裁出两块全等的、面积最大的△APB和△CP′D钢板,且∠APB=∠CP′D=60°,请你在图③中画出符合要求的点P和P′,并求出△APB的面积。(结果保留根号)
题型:解答题难度:偏难来源:陕西省中考真题
解:(1)如图①,连接AC、BD交于点P,则∠APB=90°,∴点P为所求;
(2)如图②,画法如下:1)以AB为边在正方形内作等边三角形ABP;2)作△ABP的外接圆⊙O,分别与AD、BC交于点E、F∵在⊙O中,弦AB所对的上的圆周角均为60°,∴上的所有点均为所求的点P;
(3)如图③,画法如下:1)连接AC;2)以AB为边作等边三角形ABE;3)作等边三角形ABE的外接圆⊙O,交AC于点P;4)在AC上截取AP′=CP,则P、P′即为所求;过点B作BG⊥AC,交AC于点G,∵在Rt△ABC中,AB=4,BC=3,∴,∴,在Rt△ABG中,AB=4,∴,在Rt△BPG中,∠BPA=60°,∴,∴,∴。
马上分享给同学
据魔方格专家权威分析,试题“问题探究(1)请在图①的正方形ABCD内,画出使∠APB=90°的一个点P,并..”主要考查你对&&解直角三角形,勾股定理,尺规作图&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
解直角三角形勾股定理尺规作图
概念:在直角三角形中,除直角外,一共有五个元素,即三条边和两个锐角,由直角三角形中除直角外的已知元素,求出所有未知元素的过程叫做解直角三角形。 解直角三角形的边角关系: 在Rt△ABC中,∠C=90°,∠A,∠B,∠C所对的边分别为a,b,c, (1)三边之间的关系:(勾股定理); (2)锐角之间的关系:∠A+∠B=90°; (3)边角之间的关系:。 解直角三角形的函数值:
锐角三角函数:sinA=a/c,cosA=b/c,tanA=a/b,cotA=b/a(1)互余角的三角函数值之间的关系:若∠ A+∠ B=90°,那么sinA=cosB或sinB=cosA(2)同角的三角函数值之间的关系:①sin2A+cos2A=1②tanA=sinA/cosA③tanA=1/tanB④a/sinA=b/sinB=c/sinC(3)锐角三角函数随角度的变化规律:锐角∠A的tan值和sin值随着角度的增大而增大,cos值随着角度的增大而减小。解直角三角形的应用: 一般步骤是: (1)将实际问题抽象为数学问题(画图,转化为直角三角形的问题); (2)根据题目的条件,适当选择锐角三角函数等去解三角形; (3)得到数学问题的答案; (4)还原为实际问题的答案。 解直角三角形的函数值列举:sin1=0.28351 sin2=0.50097 sin3=0.94383 sin4=0.1253 sin5=0.65816 sin6=0.65346 sin7=0.14747 sin8=0.06544 sin9=0.23087 sin10=0.93033 sin11=0.5448 sin12=0.75931 sin13=0.86497 sin14=0.66773 sin15=0.52074 sin16=0.99916 sin17=0.7367 sin18=0.9474 sin19=0.1567 sin20=0.6687 sin21=0.30027 sin22=0.912 sin23=0.2737 sin24=0.80015 sin25=0.69944 sin26=0.0774 sin27=0.54675 sin28=0.8908 sin29=0.33706 sin30=0.99994 sin31=0.0542 sin32=0.2049 sin33=0.027 sin34=0.7468 sin35=0.046 sin36=0.4731 sin37=0.0483 sin38=0.6583 sin39=0.8375 sin40=0.5392 sin41=0.5073 sin42=0.8582 sin43=0.4985 sin44=0.9972 sin45=0.5475 sin46=0.6511 sin47=0.1705 sin48=0.3941 sin49=0.7719 sin50=0.978 sin51=0.9708 sin52=0.7219 sin53=0.2928 sin54=0.9474 sin55=0.9918 sin56=0.0417 sin57=0.4239 sin58=0.426 sin59=0.1122 sin60=0.4386 sin61=0.3957 sin62=0.9269 sin63=0.3678 sin64=0.167 sin65=0.6499 sin66=0.6009 sin67=0.4404 sin68=0.7873 sin69=0.2017 sin70=0.9083 sin71=0.3167 sin72=0.1535 sin73=0.0354 sin74=0.3189 sin75=0.0683 sin76=0.9965 sin77=0.2352 sin78=0.8057 sin79=0.664 sin80=0.208 sin81=0.1378 sin82=0.5704 sin83=0.322 sin84=0.2733 sin85=0.7455 sin86=0.8242 sin87=0.5738 sin88=0.0958 sin89=0.3913 sin90=1
cos1=0.3913 cos2=0.0958 cos3=0.5738 cos4=0.8242 cos5=0.7455 cos6=0.2733 cos7=0.322 cos8=0.5704 cos9=0.1378 cos10=0.208 cos11=0.664 cos12=0.8057 cos13=0.2352 cos14=0.9965 cos15=0.0683 cos16=0.3189 cos17=0.0355 cos18=0.1535 cos19=0.3168 cos20=0.9084 cos21=0.2017 cos22=0.7874 cos23=0.4404 cos24=0.6009 cos25=0.6499 cos26=0.167 cos27=0.3679 cos28=0.927 cos29=0.3957 cos30=0.4387 cos31=0.1123 cos32=0.426 cos33=0.424 cos34=0.0417 cos35=0.9918 cos36=0.9474 cos37=0.2928 cos38=0.7219 cos39=0.9709 cos40=0.978 cos41=0.772 cos42=0.3942 cos43=0.1705 cos44=0.6512 cos45=0.5476 cos46=0.9974 cos47=0.4985 cos48=0.8582 cos49=0.5074 cos50=0.5394 cos51=0.8375 cos52=0.6583 cos53=0.0484 cos54=0.4731 cos55=0.0462 cos56=0.7468 cos57=0.0272 cos58=0.2049 cos59=0.0544 cos60=0.0001 cos61=0.3371 cos62=0.89086 cos63=0.5468 cos64=0.07746 cos65=0.69944 cos66=0.8004 cos67=0.2737 cos68=0.9122 cos69=0.30015 cos70=0.6688 cos71=0.15675 cos72=0.94745 cos73=0.73677 cos74=0.99916 cos75=0.52074 cos76=0.66767 cos77=0.86514 cos78=0.75923 cos79=0.54491 cos80=0.93041 cos81=0.23092 cos82=0.06546 cos83=0.14749 cos84=0.65346 cos85=0.65836 cos86=0.12523 cos87=0.943966 cos88=0.50108 cos89=0.2836 cos90=0
tan1=0.217585 tan2=0.74773 tan3=0.041196 tan4=0.51041 tan5=0.92401 tan6=0.67646 tan7=0.9046 tan8=0.39145 tan9=0.53627 tan10=0.46497 tan11=0.71848 tan12=0.0221 tan13=0.5631 tan14=0.18068 tan15=0.1227 tan16=0.8079 tan17=0.66033 tan18=0.9063 tan19=0.66527 tan20=0.20234 tan21=0.4158 tan22=0.1568 tan23=0.6047 tan24=0.5361 tan25=0.9986 tan26=0.8614 tan27=0.4288 tan28=0.4788 tan29=0.769 tan30=0.6257 tan31=0.5604 tan32=0.3275 tan33=0.5104 tan34=0.4265 tan35=0.7097 tan36=0.3609 tan37=0.7942 tan38=0.7174 tan39=0.0072 tan40=0.2799 tan41=0.2267 tan42=0.8399 tan43=0.6618 tan44=0.0739 tan45=0.9999 tan46=1.5693 tan47=1.6826 tan48=1.1927 tan49=1.0092 tan50=1.21 tan51=1.051 tan52=1.0785 tan53=1.4098 tan54=1.1733 tan55=1.1144 tan56=1.7403 tan57=1.5827 tan58=1.0506 tan59=1.5173 tan60=1.8767 tan61=1.4235 tan62=1.3318 tan63=1.1503 tan64=2.296 tan65=2.5586 tan66=2.215 tan67=2.753 tan68=2.2946 tan69=2.8023 tan70=2.6216 tan71=2.822 tan72=3.2526 tan73=3.1404 tan74=3.9087 tan75=3.8776 tan76=4.8455 tan77=4.153 tan78=4.456 tan79=5.307 tan80=5.707 tan81=6.041 tan82=7.207 tan83=8.593 tan84=9.587 tan85=11.32 tan86=14.942 tan87=19.16 tan88=28.515 tan89=57.144 tan90=(无限)勾股定理:直角三角形两直角边(即“勾”,“股”)边长平方和等于斜边(即“弦”)边长的平方。也就是说,如果直角三角形的两直角边长分别为a,b,斜边长为c,那么。勾股定理只适用于直角三角形,应用于解决直角三角形中的线段求值问题。定理作用⑴勾股定理是联系数学中最基本也是最原始的两个对象——数与形的第一定理。⑵勾股定理导致不可通约量的发现,从而深刻揭示了数与量的区别,即所谓“无理数"与有理数的差别,这就是所谓第一次数学危机。⑶勾股定理开始把数学由计算与测量的技术转变为证明与推理的科学。⑷勾股定理中的公式是第一个不定方程,也是最早得出完整解答的不定方程,它一方面引导到各式各样的不定方程,包括著名的费尔马大定理,另一方面也为不定方程的解题程序树立了一个范式。勾股定理的应用:数学从勾股定理出发开平方、开立方、求圆周率等,运用勾股定理数学家还发现了无理数。勾股定理在几何学中的实际应用非常广泛,较早的应用案例有《九章算术》中的一题:“今有池,芳一丈,薛生其中央,出水一尺,引薛赴岸,适与岸齐,问水深几何?答曰:"一十二尺"。生活勾股定理在生活中的应用也较广泛,举例说明如下:1、挑选投影设备时需要选择最佳的投影屏幕尺寸。以教室为例,最佳的屏幕尺寸主要取决于使用空间的面积,从而计划好学生座位的多少和位置的安排。选购的关键则是选择适合学生的屏幕而不是选择适合投影机的屏幕,也就是说要把学生的视觉感受放在第一位。一般来说在选购时可参照三点:第一,屏幕高度大约等于从屏幕到学生最后一排座位的距离的1/6;第二,屏幕到第一排座位的距离应大于2倍屏幕的高度;第三,屏幕底部应离观众席所在地面最少122厘米。屏幕的尺寸是以其对角线的大小来定义的。一般视频图像的宽高比为4:3,教育幕为正方形。如一个72英寸的屏幕,根据勾股定理,很快就能得出屏幕的宽为1.5m,高为1.1m。2、2005年珠峰高度复测行动。测量珠峰的一种方法是传统的经典测量方法,就是把高程引到珠峰脚下,当精确高程传递至珠峰脚下的6个峰顶交会测量点时,通过在峰顶竖立的测量觇标,运用“勾股定理”的基本原理测定珠峰高程,配合水准测量、三角测量、导线测量等方式,获得的数据进行重力、大气等多方面改正计算,最终得到珠峰高程的有效数据。通俗来说,就是分三步走:第一步,先在珠峰脚下选定较容易的、能够架设水准仪器的测量点,先把这些点的精确高程确定下来;第二步,在珠峰峰顶架起觇标,运用三角几何学中“勾股定理”的基本原理,推算出珠峰峰顶相对于这几个点的高程差;第三步,获得的高程数据要进行重力、大气等多方面的改正计算,最终确定珠峰高程测量的有效数据。尺规作图:是指限定用没有刻度的直尺和圆规来完成的画图。一把没有刻度的直尺看似不能做什么,画一个圆又不知道它的半径,画线段又没有精确的长度。其实尺规作图的用处很大,比如单用圆规找出一个圆的圆心,量度一个角的角度,等等。运用尺规作图可以画出与某个角相等的角,十分方便。 尺规作图的中基本作图:作一条线段等于已知线段;作一个角等于已知角;作线段的垂直平分线;作已知角的角平分线;过一点作已知直线的垂线。 还有:已知一角、一边做等腰三角形已知两角、一边做三角形已知一角、两边做三角形依据公理:还可以根据已知条件作三角形,一般分为已知三边作三角形,已知两边及夹角作三角形,已知两角及夹边作三角形等,作图的依据是全等三角形的判定定理:SSS,SAS,ASA等。 注意:保留全部的作图痕迹,包括基本作图的操作程序,只有保留作图痕迹,才能反映出作图的操作是否合理。 尺规作图方法:任何尺规作图的步骤均可分解为以下五种方法:·通过两个已知点可作一直线。·已知圆心和半径可作一个圆。·若两已知直线相交,可求其交点。·若已知直线和一已知圆相交,可求其交点。·若两已知圆相交,可求其交点。尺规作图简史:“规”就是圆规,是用来画圆的工具,在我国古代甲骨文中就有“规”这个字.“矩”就像现在木工使用的角尺,由长短两尺相交成直角而成,两者间用木杠连接以使其牢固,其中短尺叫勾,长尺叫股.矩的使用是我国古代的一个发明,山东历城武梁祠石室造像中就有“伏羲氏手执矩,女娲氏手执规”之图形.矩不仅可以画直线、直角,加上刻度可以测量,还可以代替圆规.甲骨文中也有矩字,这可追溯到大禹治水(公元前2000年)前.《史记》卷二记载大禹治水时“左准绳,右规矩”.赵爽注《周髀算经》中有“禹治洪水,……望山川之形,定高下之势,……乃勾股之所由生也.”意即禹治洪水,要先测量地势的高低,就必定要用勾股的道理.这也说明矩起源于很远的中国古代.春秋时代也有不少著作涉及规矩的论述,《墨子》卷七中说“轮匠(制造车子的工匠)执其规矩,以度天下之方圆.”《孟子》卷四中说“离娄(传说中目力非常强的人)之明,公输子(即鲁班,传说木匠的祖师)之巧,不以规矩,不能成方圆.”可见,在春秋战国时期,规矩已被广泛地用于作图、制作器具了.由于我国古代的矩上已有刻度,因此使用范围较广,具有较大的实用性.古代希腊人较重视规、矩在数学中训练思维和智力的作用,而忽视规矩的实用价值.因此,在作图中对规、矩的使用方法加以很多限制,提出了尺规作图问题.所谓尺规作图,就是只有限次地使用没有刻度的直尺和圆规进行作图.古希腊的安那萨哥拉斯首先提出作图要有尺寸限制.他因政治上的纠葛,被关进监狱,并被判处死刑.在监狱里,他思考改圆成方以及其他有关问题,用来打发令人苦恼的无所事事的生活.他不可能有规范的作图工具,只能用一根绳子画圆,用随便找来的破木棍作直尺,当然这些尺子上不可能有刻度.另外,对他来说,时间是不多了,因此他很自然地想到要有限次地使用尺规解决问题.后来以理论形式具体明确这个规定的是欧几里德的《几何原本》.由于《几何原本》的巨大影响,希腊人所崇尚的尺规作图也一直被遵守并流传下来.由于对尺规作图的限制,使得一些貌似简单的几何作图问题无法解决.最著名的是被称为几何三大问题的三个古希腊古典作图难题:立方倍积问题、三等分任意角问题和化圆为方问题.当时很多有名的希腊数学家,都曾着力于研究这三大问题,虽然借助于其他工具或曲线,这三大难题都可以解决,但由于尺规作图的限制,却一直未能如愿以偿.以后两千年来,无数数学家为之绞尽脑汁,都以失败而告终.直到1637年笛卡尔创立了解析几何,关于尺规作图的可能性问题才有了准则.到了1837年万芝尔首先证明立方倍积问题和三等分任意角问题都属于尺规作图不可能问题.1882年林德曼证明了π是无理数,化圆为方问题不可能用尺规作图解决,这才结束了历时两千年的数学难题公案.
发现相似题
与“问题探究(1)请在图①的正方形ABCD内,画出使∠APB=90°的一个点P,并..”考查相似的试题有:
367977114150836149004146768253168563522人阅读
数据挖掘与机器学习(42)
〇、序言创新对于学术研究或产业应用都具有不言而喻的重要作用,现在国家也提出了要建立创新型国家的发展战略。如果回到我们所探讨的图像处理或数据挖掘研究,细细品读其中的某些点滴,你是否能窥探出些许启迪?首先,创新可以分成两种,一种是原始创新,另外一种就是所谓的二次创新。如果一个东西过去完全不存在,你鬼使神差的就想出来,那就是原始创新。比如图灵当初石破天惊地构想出图灵机模型就是原始创新。到现在也没有任何迹象表明,他受到了什么事或什么人的启发。事实上,现在人们(包括我学习图灵机的时候)也非常惊讶,图灵是如何提出这种前无古人的奇思妙想的!二次创新也有很多种形式。比如逆向创新。据说人们在发明吸尘器之前最先发明的是吹尘器。一吸一吹,看似简单的一个颠倒,结果却如此神奇。现在同学们学习模式匹配算法时,必然是言必称KMP算法。的确,就原有的思路来说,KMP算法已经是做到极致了。但如果你还想有所突破呢?那就得首先打破旧有的条条框框。所以Boyer和Moore逆其道而行之,便提出了BM算法。KMP是从前向后做比较,而BM则是从后向前做比较。BM算法不仅提供了效率,更重要的是,由他们所提出的新思路为发端,后续产生了一个庞大的算法族。像BMH,BMHS等等又接踵而至。现在实际中基于BM算法的改进算法(相比于KMP)应用得其实更为广泛!但是今天要谈的还不是逆序创新的话题。我们要谈的是二次创新中另外一种方法,暂且称之为“推衍创新”。这个思路在现代计算机科学中可谓随处可见,如果你还没有抓住他的名门,那么说明就研究工作来说,你还没入门。举一个简单的例子作为序言的结尾。最初,“伟哥”是作为治疗心绞痛的药物而研发的。但是,后来在临床试验中发现对治疗男性勃起功能障碍更加有效。所以现在它主要被应用于这方面的疾病。所以我们所说的推衍的大概意思就是,把一个领域的成果平行地转移到另外一个领域,说不定就能发挥起效!希望本文在这方面能够给大家一些启示。一、平均值与中位数:一对死缠烂打的概念平均数是统计学中用来衡量总体水平的一个统计量。但是,显然它并不“完美”。举个例子,现在房间里有6个人,他们的财富不尽相同,但又相差无几,这时我们可以说他们的平均身价是100万元。这个平均数基本上是有意义的,因为在假设前提下,我们知道他们6个人的财富或多或少都在100万元上下。现在马云突然来了,然后房间里变成7个人了。同样的问题,房间里所有的人平均身价可能已经突破100亿,但是这个平均数就没有什么意义了。现在房间里没有谁的身价在100亿上下。这时就引出了中位数的概念!把一组数从小到大排列,取中间位置的那个数来作为衡量该组总体水平的一个统计量。如果取包含马云在内的7个人之财富的中位数,我们知道应该还是100万左右,那么它显然是有意义的,它至少代表了这个总体中绝大多少人的情况。你看出中位数的意义和作用了吗?现在当数据点分布比较均匀的时候,平均值是有意义的。但是一旦数据中存在异常值时,平均数就有可能失灵,这时就要用中位数来排除掉异常值的影响。但是平均数仍然有存在的价值,(只是某些时候我们要对其进行修正)。例如体育比赛时的打分机制,通常是“去掉一个最高分,去掉一个最低分,然后去平均值”。显然在体育比赛打分中,用中位数就不合适。所以我们说平均数和中位数就是一对死缠烂打的狐朋狗友!后面的内容会讨论这对概念在图像处理和数据挖掘中的重要应用。这涉及到简单平滑、中值滤波、K-means算法、k-Median算法等。你应该注意体会前面谈到的推衍创新思维。这能很好地帮助你举一反三。二、简单平滑与中值滤波:同时联系到LeetCode上一道Hard级别的题目现实中图像因为受到环境的影响,很容易被噪声所污染。如下图中的左上所示,这是一幅被椒盐噪声污染的图像。噪声体现为原本过渡平滑的(自然图像)区域中一个突兀的像素值。处理它最简单的策略是用一个低通滤波器对信号进行过滤。比如可以采用简单平滑算法。说白了,就是针对某个像素点,在其领域的一个小窗口内(例如3×3),对所有像素值取平均,然后用这个平均值来代替窗口中心位置的像素值。这样就能缩小噪声和非噪声像素之间的差距。也就是让原本高的值变低一点,而让原本低的值变高一点。结果如左下图所示。易见,简单平滑有一定效果,但是并不“完美”。举个例子,现在有一杯碱性溶液(PH&7),我们不断向其中加入纯水来稀释,结果PH值会越来越小。但是无论我们放多少水,这个值也不可能小于7。就算用尽全世界的水,它的整体仍然呈现碱性!有没有更好的办法?如果你还没有想到用中位数来替代均值,那么我觉得你的头脑应该不用再继续读下去了!既然(椒盐)噪声是一个异常值,那么显然用中位数的方法来将其排掉是最好的选择了,这就是所谓的“中值”滤波的基本思想。上图右下就是采用中值滤波算法处理的图像,显然比简单平滑效果好。但是,问题还没完!你有没有想过中值滤波相对于简单平滑的一个不足或者劣势?是的,中值滤波的复杂度太高,计算起来那是相当的耗时。为什么我会想到这个话题。因为最近我在更新我的MagicHouse(一款小型的图像处理软件http://blog.csdn.net/baimafujinji/article/details/)。原来中值滤波算法是由我的刘师弟完成的。他曾经是腾讯电脑管家研发的最初核心成员,现在已经自主创业变成刘总了~我也顺便遥祝他宏图大展:)。刘同学写的中值滤波没有采用进行任何优化措施(当然这也是为了算法演示之用,如果优化了别人比较难把握原始算法的核心思想),每次执行起来都跟感觉死机了一样。于是最近我决定重写这个算法。有兴趣的读者不妨搜一下关于中值滤波的加速算法,结论是这方面的paper很多,但我不得不告诉你大部分其实没啥创新。很多都是在串行转并行上下功夫,我真不认为这有啥意义。因为它们的基础仍然是下面我要谈的两个算法。首先来看Leetcode上一道评级为Hard级别的题目,如下。两个有序数组,求它们合并后的中位数。这当然没啥难的,你可能会想到合并后用一个quicksort(),然后取中间位置。结果上当然可以得到正确答案。但是一定要注意:题目要求算法时间复杂度是O(log(t)),t是合并后数组的长度。但是,quicksort()的复杂度应该是O(t·log(t))。显然这样做行不通。满足时间复杂度要求才是本题的难点!有没有什么好方法?题目给出的提示是要用“分治法”策略。而且你应该能想到是,我们要取中位数的两个子数组本来就是有序的,这个条件必须要好好利用。所以,本题的策略应该是:该方法的核心是将原问题转变成一个寻找第k小数的问题(假设两个原序列升序排列),这样中位数实际上是第(m+n)/2小的数。所以只要解决了第k小数的问题,原问题也得以解决。首先假设数组A和B的元素个数都大于k/2,我们比较A[k/2-1]和B[k/2-1]两个元素,这两个元素分别表示A的第k/2小的元素和B的第k/2小的元素。这两个元素比较共有三种情况:&、&和=。如果A[k/2-1]&B[k/2-1],这表示A[0]到A[k/2-1]的元素都在A和B合并之后的前k小的元素中。换句话说,A[k/2-1]不可能大于两数组合并之后的第k小值,所以我们可以将其抛弃。反之亦然,所以当A[k/2-1]&B[k/2-1]时,我们将抛弃B[0]到B[k/2-1]的元素。当A[k/2-1]=B[k/2-1]时,则已经找到了第k小的数,也即这个相等的元素,将其记为m。由于在A和B中分别有k/2-1个元素小于m,所以m即是第k小的数。(这里可能有人会有疑问,如果k为奇数,则m不是中位数。当然这种情况我们后面给出的代码里已有做特殊考虑,但整个算法的大体思路并无不同)通过上面的分析,我们即可以采用递归的方式实现寻找第k小的数。此外还需要考虑几个边界条件:&&& 如果A或者B为空,则直接返回B[k-1]或者A[k-1];&&& 如果k为1,我们只需要返回A[0]和B[0]中的较小值;&&& 如果A[k/2-1]=B[k/2-1],返回其中一个;最终实现的代码为:double findKth(vector&int&& nums1, int size1, vector&int&::iterator it1,
vector&int&& nums2, int size2, vector&int&::iterator it2, int k)
//Always assume that size1 is equal or smaller than size2
if (size1 & size2)
return findKth(nums2, size2, it2, nums1, size1, it1, k);
if (size1 == 0)
return *(it2+k-1);
if (k == 1)
return min(*it1, *it2);
//Divide k into two parts
int offset1 = min(k / 2, size1);
int offset2 = k - offset1;
if (*(it1+offset1-1) &= *(it2+offset2-1))
return findKth(nums1, size1 - offset1 , it1+offset1, nums2, offset2, it2, k - offset1);
return findKth(nums1, offset1, it1, nums2, size2 - offset2, it2+offset2, k - offset2);
double findMedianSortedArrays(vector&int&& nums1, vector&int&& nums2) {
int m = nums1.size();
int n = nums2.size();
int total = m +
double result = findKth(nums1, m, nums1.begin(), nums2, n, nums2.begin(), (total + 1) / 2);
if ((total & 1) == 0)
result = (result +
findKth( nums1, m, nums1.begin(), nums2, n, nums2.begin(), total / 2 + 1)) / 2;
通过对上述LeetCode题目的讨论,其实已经可以给出我们一些优化的想法了。来看下面这个图,当我们最初计算红色像素的邻域中值时,其实已经得到了红框中像素值的一个有序排列。然后在计算绿色像素的邻域中值时,我们把滑块向后移动。这时为了避免重复计算,一定要充分利用之前的有序结果。剔除最左面三个像素后的红框中的6个像素仍然有序,这时只要把新加入的绿框中的三个元素也做排序,然后得到两个有序的序列,是不是就变成了上我们讨论的问题了?而且,这个算法面对更大的滑动窗口时,优势会更为明显。但是,如果我们只想计算3×3邻域内的中值,其实还有另外一个选择。例如下面的邻域0&& 1&& 23&& 4&& 56&& 7&& 8首先对窗口内的每一列分别计算最大值,中值和最小值,这样就得到了3组数据最大值组:Max0 = max[P0,P3,P6],Max1 = max[P1,P4,P7],Max2 = max[P2,P5,P8]中值组: Med0 = med[P0,P3,P6],Med1 = med[P1,P4,P7], Med2 = med[P2,P5,P8]最小值组:Min0 = Min[P0,P3,P6],Min1 = Min[P1,P4,P7],Min2 = max[P2,P5,P8]由此可以看到,最大值组中的最大值与最小值组中的最小值一定是9个元素中的最大值和最小值,不可能为中值,剩下7个;中值组中的最大值至少大于5个像素,中值组中的最小值至少小于5个像素,不可能为中值,剩下5个;最大值组中的中值至少大于5个元素,最小值组中的中值至少小于5个元素,不可能为中值,最后剩下3个要比较的元素,即最大值组中的最小值Maxmin,中值组中的中值Medmed,最小值组中的最大值MinMax;找出这三个值中的中值为9个元素的中值。采用上述方法,也会大大降低计算量。可见设计一个好算法永远是那么的重要!三、数据挖掘中的K-means和K-median聚类是将相似对象归到同一个簇中的方法,这有点像全自动分类。簇内的对象越相似,聚类的效果越好。支持向量机、神经网络所讨论的分类问题都是有监督的学习方式,现在我们所介绍的聚类则是无监督的。其中,K均值(K-means)是最基本、最简单的聚类算法。在K均值算法中,质心是定义聚类原型(也就是机器学习获得的结果)的核心。在介绍算法实施的具体过程中,我们将演示质心的计算方法。而且你将看到除了第一次的质心是被指定的以外,此后的质心都是经由计算均值而获得的。首先,选择K个初始质心(这K个质心并不要求来自于样本数据集),其中K是用户指定的参数,也就是所期望的簇的个数。每个数据点都被收归到距其最近之质心的分类中,而同一个质心所收归的点集为一个簇。然后,根据本次分类的结果,更新每个簇的质心。重复上述数据点分类与质心变更步骤,直到簇内数据点不再改变,或者等价地说,直到质心不再改变。基本的K均值算法描述如下:根据数据点到新质心的距离,再次对数据集中的数据进行分类,如图13-2(c)所示。然后,算法根据新的分类来计算新的质心,并再次根据数据点到新质心的距离,对数据集中的数据进行分类。结果发现簇内数据点不再改变,所以算法执行结束,最终的聚类结果如图13-2(d)所示。对于距离函数和质心类型的某些组合,算法总是收敛到一个解,即K均值到达一种状态,聚类结果和质心都不再改变。但为了避免过度迭代所导致的时间消耗,实践中,也常用一个较弱的条件替换掉“质心不再发生变化”这个条件。例如,使用“直到仅有1%的点改变簇”。尽管K均值聚类比较简单,但它也的确相当有效。它的某些变种甚至更有效, 并且不太受初始化问题的影响。但K均值并不适合所有的数据类型。它不能处理非球形簇、不同尺寸和不同密度的簇,尽管指定足够大的簇个数时它通常可以发现纯子簇。对包含离群点的数据进行聚类时,K均值也有问题。在这种情况下,离群点检测和删除大有帮助。K均值的另一个问题是,它对初值的选择是敏感的,这说明不同初值的选择所导致的迭代次数可能相差很大。此外,K值的选择也是一个问题。显然,算法本身并不能自适应地判定数据集应该被划分成几个簇。最后,K均值仅限于具有质心(均值)概念的数据。一种相关的K中心点聚类技术没有这种限制。在K中心点聚类中,我们每次选择的不再是均值,而是中位数。这种算法实现的其他细节与K均值相差不大,我们不再赘述。最后我们给出一个实际应用的例子。(代码采用我最喜欢用做数据挖掘的R语言来实现)一组来自世界银行的数据统计了30个国家的两项指标,我们用如下代码读入文件并显示其中最开始的几行数据。可见,数据共分散列,其中第一列是国家的名字,该项与后面的聚类分析无关,我们更关心后面两列信息。第二列给出的该国第三产业增加值占GDP的比重,最后一列给出的是人口结构中年龄大于等于65岁的人口(也就是老龄人口)占总人口的比重。为了方便后续处理,下面对读入的数据库进行一些必要的预处理,主要是调整列标签,以及用国名替换掉行标签(同时删除包含国名的列)。如果你绘制这些数据的散点图,不难发现这些数据大致可以分为两组。事实上,数据中有一半的国家是OECD成员国,而另外一半则属于发展中国家(包括一些东盟国家、南亚国家和拉美国家)。所以我们可以采用下面的代码来进行K均值聚类分析。对于聚类结果,限于篇幅我们仍然只列出了最开始的几条。但是如果用图形来显示的话,可能更易于接受。下面是示例代码。上述代码的执行结果如图13-3所示。现在如果我问能不能提出另外一种与k-means类似的算法,你会想到什么?如果你能从k-均值算法想到提出k-中值算法,那么你算是没白读这篇文章!触类旁通,举一反三这招你算真学会了。(我想我已经无需再详细介绍k-中值算法的细节了,基本上和k-means一样,只是把所有均值出现的地方换成中值而已)这个思想看起好像很不起眼,但是你还别说,k-median算法还真的存在,而且是k-means算法的一个重要补充和改进。你可能会说提出k-median算法的人绝对是捡了一个大便宜,这么轻轻松松地就提出了一个足以留名的算法。但其实我想说,真正想到这一点的人,功力也绝对不可小觑。冰冻三尺、非一日之寒。唯有基础扎实,内力深厚的大家才能拥有这般敏锐的创新嗅觉。-------------------------------------------------------------------------------------------------------------------------------------------------------又到了广告时间了,如果你对算法感兴趣,欢迎关注我的新书《算法之美》,或者关注本博客。详情请参见 http://blog.csdn.net/baimafujinji/article/details/
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1590048次
积分:21866
积分:21866
排名:第292名
原创:314篇
转载:10篇
评论:3794条
1. 在博客文章下留言,博客私信一律不回。
2. 发邮件至,将#换成@。
3. 算法与数据结构QQ群:,仅限算法之美读者交流之用。
文章:12篇
阅读:32658
文章:34篇
阅读:274257
数字图像处理原理与实践(MATLAB版),

我要回帖

更多关于 谁有多余的qq 的文章

 

随机推荐