作者:刘伟 来源:CSDN博客 酷勤网收集 2007-12-31
可能有很多朋友在网上看过google公司早几年的招聘广告,它的第一题如下了:{first 10-digit prime found in consecutive digits e}.com,e中出现的连续的第一个10个数字组成的质数。据说当时这个试题在美国很多地铁的出站口都有大幅广告,只要正确解答了这道题,在浏览器的地址栏中输入这个答案,就可以进入下一轮的测试,整个测试过程如同一个数学迷宫,直到你成为google的一员。又如Intel某年的一道面试题目:巴拿赫病故于1945年8月31日。他的出生年份恰好是他在世时某年年龄的平方,问:他是哪年出生的?这道看似很简单的数学问题,你能不能能快地解答呢?下面则是一道世界第一大软件公司微软的招聘测试题:中间只隔一个数字的两个素数被称为素数对,比如5和7,17和19,证明素数对之间的数字总能被6整除(假设这两个素数都大于6),现在证明没有由三个素数组成的素数对。这样的试题还有很多很多,这些题目乍初看上去都是一些数学问题。但是世界上一些著名的公司都把它们用于招聘测试,可见它们对新员工数学基础的重视。数学试题与应用程序试题是许多大型软件公司面试中指向性最明显的一类试题,这些试题就是考察应聘者的数学能力与计算机能力。某咨询公司的一名高级顾问曾说:微软是一家电脑软件公司,当然要求其员工有一定的计算机和数学能力,面试中自然就会考察这类能力。微软的面试题目就考察了应聘人员对基础知识的掌握程度、对基础知识的应用能力,甚至暗含了对计算机基本原理的考察。所以,这样的面试题目的确很“毒辣”,足以筛选到合适的人。
四川大学数学学院的曹广福教授曾说过:“一个大学生将来的作为与他的数学修养有很大的关系”。大学计算机专业学生都有感触,计算机专业课程中最难的几门课程莫过于离散数学、编译原理、数据结构,当然像组合数学、密码学、计算机图形学等课程也令许多人学起来相当吃力,很多自认为数据库学得很好的学生在范式、函数依赖、传递依赖等数学性比较强的概念面前感到力不从心,这些都是因为数学基础或者说数学知识的缺乏所造成的。数学是计算机的基础,这也是为什么考计算机专业研究生数学都采用最难试题(数学一)的原因,当然这也能促使一些新的交叉学科如数学与应用软件、信息与计算科学专业等飞速发展。许多天才程序员本身就是数学尖子,众所周知,Bill Gates的数学成绩一直都很棒,他甚至曾经期望当一名数学教授,他的母校——湖滨中学的数学系主任弗雷福·赖特曾这样谈起过他的学生:“他能用一种最简单的方法来解决某个代数或计算机问题,他可以用数学的方法来找到一条处理问题的捷径,我教了这么多年的书,没见过像他这样天分的数学奇才。他甚至可以和我工作过多年的那些优秀数学家媲美。当然,比尔也各方面表现得都很优秀,不仅仅是数学,他的知识面非常广泛,数学仅是他众多特长之一。”。影响一代中国程序人的金山软件股份有限公司董事长求伯君当年高考数学成绩满分进一步说明了问题。很多数学基础很好的人,一旦熟悉了某种计算机语言,他可以很快地理解一些算法的精髓,使之能够运用自如,并可能写出时间与空间复杂度都有明显改善的算法。
程序设计当中解决的相当一部分问题都会涉及各种各样的科学计算,这需要程序员具有什么样的基础呢?实际问题转换为程序,要经过一个对问题抽象的过程,建立起完善的数学模型,只有这样,我们才能建立一个设计良好的程序。从中我们不难看出数学在程序设计领域的重要性。算法与计算理论是计算机程序设计领域的灵魂所在,是发挥程序设计者严谨,敏锐思维的有效工具,任何的程序设计语言都试图将之发挥得淋漓尽致。程序员需要一定的数学修养,不但是编程本身的需要,同时也是培养逻辑思维以及严谨的编程作风的需要。数学可以锻炼我们的思维能力,可以帮助我们解决现实中的问题。可以帮助我们更高的学习哲学。为什么经常有人对一些科学计算程序一筹莫展,他可以读懂每一行代码,但是却无法预测程序的预测结果,甚至对程序的结构与功能也一知半解,给他一个稍微复杂点的数学公式,他可能就不知道怎么把它变成计算机程序。很多程序员还停留在做做简单的MIS,设计一下MDI,写写简单的Class或用SQL语句实现查询等基础的编程工作上,对于一些需要用到数学知识的编程工作就避而远之,当然实现一个累加程序或者一个税率的换算程序还是很容易的,因为它们并不需要什么高深的数学知识。
一名有过10多年开发经验的老程序员曾说过:“所有程序的本质就是逻辑。技术你已经较好地掌握了,但只有完成逻辑能力的提高,你才能成为一名职业程序员。打一个比方吧,你会十八般武艺,刀枪棍棒都很精通,但就是力气不够,所以永远都上不了战场,这个力气对程序员而言就是逻辑能力(其本质是一个人的数学修养,注意,不是数学知识)。”
程序员的数学修养不是一朝一夕就可以培养的。数学修养与数学知识不一样,修养需要一个长期的过程,而知识的学习可能只是一段短暂的时间。下面是一些我个人对于程序员如何提高与培养自己的数学修养的基本看法。
首先,应该意识到数学修养的重要性。作为一个优秀的程序员,一定的数学修养是十分重要也是必要的。数学是自然科学的基础,计算机科学实际上是数学的一个分支。计算机理论其实是很多数学知识的融合,软件工程需要图论,密码学需要数论,软件测试需要组合数学,计算机程序的编制更需要很多的数学知识,如集合论、排队论、离散数学、统计学,当然还有微积分。计算机科学一个最大的特征是信息与知识更新速度很快,随着数学知识与计算机理论的进一步结合,数据挖掘、模式识别、神经网络等分支科学得到了迅速发展,控制论、模糊数学、耗散理论、分形科学都促进了计算机软件理论、信息管理技术的发展。严格的说,一个数学基础不扎实的程序不能算一个合格的程序员,很多介绍计算机算法的书籍本身也就是数学知识的应用与计算机实现手册。
其次,自身数学知识的积累,培养自己的空间思维能力和逻辑判断能力。数学是一门分支众多的学科,我们无法在短暂的一生中学会所有的数学知识,像泛函理论、混沌理论以及一些非线性数学问题不是三五几天就可以掌握的。数学修养的培养并不在与数学知识的多少,但要求程序员有良好的数学学习能力,能够很快地把一些数学知识和自己正在解决的问题联系起来,很多理学大师虽然不是数学出身,但是他们对数学有很强的理解能力和敏锐的观察力,于是一系列新的学科诞生了,如计算化学、计算生物学、生物信息学、化学信息学、计算物理学,计算材料学等等。数学是自然学科的基础,计算机技术作为理论与实践的结合,更需要把数学的一些精髓融入其中。从计算机的诞生来看它就是在数学的基础上产生的,最简单的0、1进制就是一个古老的数学问题。程序设计作为一项创造性很强的职业,它需要程序员有一定的数学修养,也具有一定的数学知识的积累,可以更好地把一些数学原理与思想应用于实际的编程工作中去。学无止境,不断的学习是提高修养的必经之路。
第三,多在实践中运用数学。有些高等学校开设了一门这样的课程——《数学建模》。我在大学时期也曾学过,这是一门内容很丰富的课程。它把很多相关的学科与数学都联系在一起,通过很多数学模型来解决实际的生产生活问题,很多问题的解决需要计算机程序来实现。我在大学和研究生阶段都参加过数学建模竞赛,获得了不少的经验,同时也进一步提高了自己的数学修养。实际上,现在的程序设计从某些角度来看就是一个数学建模的过程,模型的好坏关系到系统的成败,现在数学建模的思想已经用于计算机的许多相关学科中,不单只是计算机程序设计与算法分析。应该知道,数学是一门需要在实践中展示其魅力的科学,而计算机程序也是为帮助解决实际问题而编制的,因此,应该尽量使它们结合起来,在这个方面,计算机密码学是我认为运用数学知识最深最广泛的,每一个好的加密算法后面都有一个数学理论的支持,如椭圆曲线、背包问题、素数理论等。作为一名优秀的程序员,应该在实际工作中根据需要灵活运用数学知识,培养一定的数学建模能力,善于归纳总结,慢慢使自己的数学知识更加全面,数学修养得到进一步提高。
第四,程序员培养制度与教学的改革。许多程序员培养体制存在很多缺陷,一开始就要求学员能够快速精通某种语言,以语言为中心,对算法的核心思想与相关的数学知识都一笔带过,讲得很少,这造成很多程序员成为背程序的机器,这样不利于程序员自身的快速成长,也不利于程序员解决新问题。我在长期的程序员培训与计算机教学工作采用了一些与传统方式不一致的方法,收到了一定的效果。很多初学程序的人往往写程序时有时候会有思维中断,或者对一些稍难的程序觉得无法下手,我采用了一些课前解决数学小问题的方法来激励大家的学习兴趣,这些小问题不单单是脑筋急转弯,其中不少是很有代表意义的数学思考题。通过数学问题来做编程的热身运动,让学员在数学试题中激发自己的思维能力,记得有位专家曾经说过,经常做做数学题目会使自己变聪明,很长时间不去接触数学问题会使自己思维迟钝。通过一些经典的数学问题来培养学员的思维的严谨性和跳跃性。很多人可能不以为然,其实有些看似简单的问题并不一定能够快速给出答案,大脑也是在不断的运用中变更加灵活的。不信吗?大家有兴趣可以做做下面这道题目,看看能不能在1分钟之内想到答案,这只是一道小学数学课后习题。很多人认为自己的数学基础很好,但是据说这道题目90%以上的人不能在一个小时内给出正确答案。试试,如果你觉得我说的是错的。
证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。
最后,多学多问,多看好书,看经典。我在这里向大家推荐两部可能大家已经很熟悉的经典的计算机算法教材,它们中间很多内容其实就是数学知识的介绍。第一部是《算法导论》,英文名称:Introduction to Algorithms,作者:Thomas H. Cormen ,Charles E. Leiserson ,Ronald L. Rivest ,Clifford Stein。本书的主要作者来自麻省理工大学计算机,作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了图灵奖。这本书目前是算法的标准教材,美国许多名校的计算机系都使用它,国内有些院校也将本书作为算法课程的教材。另外许多专业人员也经常引用它。本书基本包含了所有的经典算法,程序全部由伪代码实现,这更增添了本书的通用性,使得利用各种程序设计语言进行程序开发的程序员都可以作为参考。语言方面通俗,很适合作为算法教材和自学算法之用。另一部是很多人都应该知道的Donald.E.Knuth所著《计算机程序设计艺术》,英文名称:The Art of Computer Programming。 Donald.E.Knuth人生最辉煌的时刻在斯坦福大学计算机系渡过,美国计算机协会图灵奖的获得者,是本领域内当之无愧的泰斗。有戏言称搞计算机程序设计的不认识Knuth就等于搞物理的不知道爱因斯坦,搞数学的不知道欧拉,搞化学的不知道道尔顿。被简称为TAOCP的这本巨著内容博大精深,几乎涵盖了计算机程序设计算法与理论最重要的内容。现在发行的只有三卷,分别为基础运算法则,半数值算法,以及排序和搜索(在写本文之际,第四卷已经出来了,我也在第一时间抢购了一本)。本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计算机工作者的公认。书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学著作中是不多见的。至于本书的价值我觉得Bill Gates先生的话足以说明问题:“如果你认为你是一名真正优秀的程序员读Knuth的《计算机程序设计艺术》,如果你能读懂整套书的话,请给我发一份你的简历”。作者数学方面的功底造就了本书严谨的风格,虽然本书不是用当今流行的程序设计语言描述的,但这丝毫不损伤它“程序设计史诗”的地位。道理很简单,它内涵的设计思想是永远不会过时的。除非英语实在有困难,否则建议读者选用英文版。我个人就是阅读的该书的英文版,虽然花了不少money和时间,但是收获颇丰,值得。
总之,要想成为一名有潜力有发展前途的程序员,或者想成为程序员中的佼佼者,你一定要培养良好的数学修养。切记:对于一名能够灵活自如编写各种程序的人,数学是程序的灵魂。
参考文献
[1] 林庆忠. 修炼一名程序员的职业水准. http://blog.csdn.net/imwj/archive/2005/02/02/27723.
[2] 刘汝佳, 黄亮. 算法艺术与信息学竞赛. 清华大学出版社: 2004.
[3] Thomas H.Cormen Charles E.Leiserson Ronald L.Rivest Clifford Stein. Introduction to Algorithms (Second Edition). The MIT Press: 2002.
[4] Donald.E.Knuth. The Art of Computer Programming. 清华大学出版社: 2002.
[5] 姜启源. 数学模型. 清华大学出版社: 1993.
[6] Zbigniew Michalewicz, David B. Fogel. 如何求解问题: 现代启发式方法. 中国水利水电出版社: 2003.
作者简介:
刘伟,国家认证系统分析员,国家认证数据库系统工程师,中南大学理学硕士,有超过七年计算机软件开发与计算机教学经验,在多个学校与培训机构承担教学工作,参与组织与开发各类信息系统50多个。学生期间曾获得全国研究生数学建模竞赛全国一等奖和二等奖各一次。参与翻译外文专著一部,发表论文十余篇。
来自:http://blog.csdn.net/LoveLion/archive/2006/10/25/1350127.aspx
评论
| 呵呵,数学本来就是计算机产生的基础,但现在,好像很多学计算机的人都忘了本:“老子是学计算机的,就是看不起你们学数学的、学电子技术的、学自动控制的!”,其实,他们不知道,他们算法没有数学专业的好,C没有学自动控制专业的好,汇编没有学电子技术的好,Java, |
| 早就想写一篇跟作者类似的文章了。 以前读本科的时候,以为学计算机最重要的是算法,后来才发现,算法还不是最重要的,真正最重要的是数学。 解决的不是算法,而是数学模型,数学模型提出来后,算法自然就有了。 |
| 平时忙于学习各种技术的规范、框架、api等等。在开发过程中遇到的每一块问题都是计算机的一个单独分支或学科,而要把每一部分都做好需要非常丰富的知识。数学是个好东西,需要不断修行。 |
| 呵呵,我说说那个几何题, “不信吗?大家有兴趣可以做做下面这道题目,看看能不能在1分钟之内想到答案,这只是一道小学数学课后习题。很多人认为自己的数学基础很好,但是据说这道题目90%以上的人不能在一个小时内给出正确答案。试试,如果你觉得我说的是错的。 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。” 延长CD交AB于E点, 则 BE+ED>DB AE+AC>EC=ED+BC 即AE+AC+BE+ED>ED+DB+DC 即AB+AC>DB+DC |
| 我的解答: 因为: AD+DC>AC 同时 AD+DB>AB 所以: 2AD+DC+DB>AB+AC 所以:2AD>(AB+AC)-(DC+DB) 又因为:AD为内点,为正值 所以:AB+AC>DB+DC 证明完毕,时间共计为3分钟。?我小学毕业了吗?我也在写代码,老板不会明天fire me 吧! 老大,逻辑有问题呀 2AD>(AB+AC)-(DC+DB) 2AD>0 ,能推断出 (AB+AC)-(DC+DB) > 0 ?? 看来你几个问题的答案都是肯定的了! |
| 数学还真不能缺。 好东西要多看看 |
| 数学还真不能缺。 好东西要多看看 |
| 我的解答: 因为: AD+DC>AC 同时 AD+DB>AB 所以: 2AD+DC+DB>AB+AC 所以:2AD>(AB+AC)-(DC+DB) 又因为:AD为内点,为正值 所以:AB+AC>DB+DC 证明完毕,时间共计为3分钟。?我小学毕业了吗?我也在写代码,老板不会明天fire me 吧! |
| 数学固然重要,但数学却不是仅仅靠努力就可以学好的 |
| 中国就因为这种精英教育的思想,才害了那么多的学生。要是大学生都去弄数学,更没有几个合格的软件蓝领了,别以为谁都适合去做那些研究,人人都是BILL啊? |
| 难道你希望是这样:小日本来做系统分析,然后你来写代码,笑话,现在中国人干得都是最脏最累的活,拿最少的钱,你想为小日本,老外扫厕所,我们可不干!!!你说这是精英教育,我看你是电视剧看多了,真成了现代奴才 |
| 十分同意楼上: 老外依仗着核心技术,太欺负中国这些相对落后的国家了。大部分财富都被他们掠夺了,给发展中国家的工人却是很少的工资。特别是小日本,都是来华赚取廉价劳动力的。 |
| 应该是素数对。微软拿这么简单的题来招聘? >下面则是一道世界第一大软件公司微软的招聘测试题:中间只隔一个数字的两个奇数被称为奇数对,比如17和19,证明奇数对之间的数字总能被6整除(假设这两个奇数都大于6),现在证明没有由三个奇数组成的奇数对。 |
| 这个要看个人情况,不是每个人都会选择研发的道路,很多人做商业系统开发然后做公司也是不错的选择. |
| 用证明吗? 发表于2006-10-25 17:45:00 IP: 222.172.222.* “不信吗?大家有兴趣可以做做下面这道题目,看看能不能在1分钟之内想到答案,这只是一道小学数学课后习题。很多人认为自己的数学基础很好,但是据说这道题目90%以上的人不能在一个小时内给出正确答案。试试,如果你觉得我说的是错的。 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。” D在三角形内部,可知,dbc面积小于abc,因为他们共用了同一个低bc,由三角形周长与面积公式可以直接得到上面结果 ——这个证明是错误的,不要太得意,好好想想吧!!! |
| 数学固然重要,但数学却不是仅仅靠努力就可以学好的 |
| “不信吗?大家有兴趣可以做做下面这道题目,看看能不能在1分钟之内想到答案,这只是一道小学数学课后习题。很多人认为自己的数学基础很好,但是据说这道题目90%以上的人不能在一个小时内给出正确答案。试试,如果你觉得我说的是错的。 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。” D在三角形内部,可知,dbc面积小于abc,因为他们共用了同一个低bc,由三角形周长与面积公式可以直接得到上面结果 |
| 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。” 延长CD交AB于E点, 则 BE+ED>DB AE+AC>EC=ED+BC 即AE+AC+BE+ED>ED+DB+DC 即AB+AC>DB+DC ****************** 柯南也做错了, EC != ED+BC 郁闷,竟然没有一个人能独立做出这道题 |
| 应该是素数对。微软拿这么简单的题来招聘? >下面则是一道世界第一大软件公司微软的招聘测试题:中间只隔一个数字的两个奇数被称为奇数对,比如17和19,证明奇数对之间的数字总能被6整除(假设这两个奇数都大于6),现在证明没有由三个奇数组成的奇数对。 ********************** 简单吗? 20年前俺就知道所有的素数都可以写成6*n+1或6*n-1的形式,却从不知道如何证明的。 郁闷 |
| >简单吗? 20年前俺就知道所有的素数都可以写成6*n+1或6*n-1的形式,却从不知道如何证明。 假设p和p+2是两个大于6的素数,则中间那个数为p+1。p+1为偶数,可以被2整除。p, p+1, p+2是三个连续的自然数,其中必然有一个能被3整除(不用证明了吧)。由于p和p+2都是大于6的素数,所以这个能被3整除的数必定是p+1。所以p+1能够被6整除。 同样,如果p是奇素数,则p, p+2, p+4之间必定有一个能够被3整除,所以不存在由三个素数组成的素数对。 |
| 柯南那是笔误。应该是EC=ED+CD |
| 我觉得用反证法可以得证,大家试试! |
| google的题还要涉及到人的常规寿命问题计不会超过150岁吧,所以就要找150里平方数在[(1945-150),1945)区间的可能值,这个可以用试算得到,落在这个范围内的有两个数是43和44,分别对应当平方数为1849和1936,在根据后面的条件可以判定是1849年出生的。 |
| 第一題 還沒想好 第二題 肯定是一個數的平方為小於1945減他自己 且為合理的人的壽命的數 可簡單算出為43嵗 第三題 簡單知 素數必須為奇數 那麽 假設命題成立 那麽 設中間的為 2n+1 其他兩個位2n - 1 2n+3 中間的偶數為 2n , 2n+2 黨 (2*(2n) )%6 = 0 時 (2 * (2n+2)) % 6 = 4 黨 (2 * (2n + 2)) % 6 =0 時 ( 2*2n) % 6 = 2 與命題不符 所以 不存在 其實 可以證明 2 3 5 不可以 然後 其他的素數都是奇數 且所有的奇數都不可以 即可證明該題了 |
| 这个解法很简单,只要做一条辅助线就可以了,具体是: 证明: 延长BD并交AC与E点。 因AB + AE > BE = BD + DE 所以AB + AE - DE > BD (1) 又CE + DE > CD (2) 由(1) + (2 ) AB + AE + CE > BD + CD 即: AB + AC > BD + CD 证毕 |
| 前面说错了,我提供的是Intel题的答案,google的题意是在自然常数e中找到第一个连续的10位数字,这个10位数字是一个质数。 |
| 我的解答: 因为: AB+AD>BD 同时 AC+AD>DC 所以: 2AD+AB+AC>BD+DC 所以:(AB+AC)-(DC+DB) >2AD 又因为:AD为内点,为正值 所以:AB+AC>DB+DC 证明完毕,时间共计为3分钟。?我小学毕业了吗?我也在写代码,老板不会明天fire me 吧! |
| google那道題的意思是 常對數e 是一個無理數 他的數字中 有連續十位數字組成的數為質數 求第一個出現的這個數 其實 有點變態這個題 懷疑真實性 |
| 不知道google题目到底是什么意思,英文没有看懂,中文也没理解。哪位老兄解释一下? |
| google题答案是7427466391 这个我是利用google网站搜索的,搜索条件“e 中的质数”结果的第一条就是答案了,^_^ |
| 楼上不要在错误的解答里面转悠了。你把AD挪到不等式右边的时候忘了换符号。 还是google的题目有意思。 |
| 那道几何问题很深奥亚,记得第一次是在初中时,一个刚上晚数学提高班的同学出给我的,当时没做对。 其实越是几何学的好的,越容易将AD连起来(由于那优美的对称性)。 但是,经过冷静思考后,基本上会作对的。 所以这道题作的快,可未必水平高,正如任何一个“好”的算法(或方法),总能找到特殊的输入,使他不是最好的:) |
| 数6n, 6n+1, 6n+2, 6n+3, 6n+4, 6n+5 去掉6n, 6n+2, 6n+3, 6n+4,如果是素数,只能是 6n+1, 6n+5, 6n+5可写成6n-1, 素数对6n-1,6n+1,中间是6n, 得证 |
| 数6n, 6n+1, 6n+2, 6n+3, 6n+4, 6n+5 去掉6n, 6n+2, 6n+3, 6n+4,如果是素数,只能是 6n+1, 6n+5, 6n+5可写成6n-1, 素数对6n-1,6n+1,中间是6n, 得证 |
| 佩服 素数对如此证? 必定是密码学高手 |
| 那道几何体就考一个点 三角形的任何两边相加必大于第三条边。 其他怎么证,就简单了。 其实也看什么程序员 程序员用不着什么算法, 重要会ctrl+C就行了 数学家也不用会编程序, 把行业里的算法问题研究一下,就可以了。 |
| 素数对之间的数必定能被6整除的证明很简单啊.现证明如下: 首先,一个素数对之间夹的数必定是偶数,因此这个素数对所夹的数必定有一个因数为2. 则第二步只需要证这个素数对之间的数还有一个因数为3即可.现证明素数对之间的数必定有一个因数为3:设一个素数对为x,y,并设连续的5个数x-1,x,x+1,y,y+1.则可知x+1和y+1必定没有因数3.因为若x-1有,则x-1+3 = y有,而y为质数.或者y+1有,则y+1-3 = x有,而我们知道x,y都为素数,不可能有因数3.因此,只有x与y之间的数可能有因数3. 由第一步和第二步可知素数对中间的数必定有一个因数2和一个因数3,因此必定可以被6整除. 证毕 |
| 楼上的反证法是错误的。原命题说的是对所有/任意内点D成立,其否定是说至少存在一个内点D使得DB+DB>AB+AC。你没有排除这种可能性。 |
| 平面几何那道题柯南、dgzha他们的证法是最简洁的 我看到这道题想到的证法如下,比他们的略复杂些: 过D点作一直线EF,分别与线段AB、AC交于E、F点 则有 AB+AC=BE+AE+AF+FC >BE+EF+FC=BE+ED+DF+FC >BD+DC |
| 反证法 延长AD交BC于E, 假设DB+DC>AB+AC,则对于DE上的任意一点F,有FB+FC>DB+DC>AB+AC,如果F无限接近于BC,则FB+FC无限接近于BC,此时BC>AB+AC,矛盾。 |
| 分别以B点和C点为圆心,DB和DC为半径画圆,交AB和AC与E,F,这样子可以吗? |
| 应该是DB+DB>=AB+AC。 这道题不适合使用反证法。 还是讨论google那道题吧。关键是怎么样快速判定一个10位的十进制整数是否素数。必须使用long来表示了。目前能够想到的只是使用筛法。保留316228以内的素数表进行查找就可以了,大部分合数在几次试除之后就可以排除,应该还是比较快的。不知道有没有更快的方法。 |
| 试着证一下微软的招聘测试题: 设k-1,k,k+1,中k-1和k+1是素数,则k一定是偶数,所以只要证明k是3的倍数。而k-1和k+1是素数,意味着它们都不是3的倍数,所以它们的各位数字之和sum只能是3a+1或3a+2。 1. 如果k-1的最后一位不是9,且它的sum是3a+1,则k+1的sum就是3a+3,矛盾,所以,k-1的sum一定是3a+2,这样,k的sum就是3a+3。 2. 如果k-1的最后一位是9,则,如果k-1的sum是3a+1,则k的sum就是3a+1-9+1,即3a-7,也可以写成3a+2,则k+1的sum是3a+3,矛盾。所以,k-1的sum一定是3a+2,这样,k的sum就是3a+3。 结束。 |
| 关于素数对中间被6整除最简单的方法: 大家都写这么麻烦,我来说说,加入素数对是x和y,中间是a,xay三个连续整数里面肯定有一个能被3整除,素数不会,只能是a。 当然连续整数里面能被2整除的也是a,这个a自然能被6整除了。 这么简单,列什么式子:) |
| 还真是,我脑子锈了,这么简单都想不起来 |
| hehe...combinatorial 跟discrete math都不知道是同一件事,还长篇大论了那么久。 |
| trytoday 的思维比较开阔 |
| 几何题这么证明 根据三角形大角对大边的原理就行了 那有多复杂 |
| 几何题这么证明 根据三角形大角对大边的原理就行了 那有多复杂 |
| 自己看看combinatorial math和 discrete math的书,看看内容是不是一样的,数学知识难免有交叉,但是它们的侧重不相同,一个抽屉问题是个组合问题,一个鸽笼问题也是个组合问题,虽然离散上也提到,但是离散的重点并不在此。在很多学校也是两门不同的课程。 我不想争论什么,如果深入学习一下这两门数学就知道有什么不同了。 按照你的说法,那图论、数论、逻辑学、甚至运筹学都应该叫离散数学了,那数学为什么还要有这些分支??? |
| keep it simple stupid area ABC > area of BCD so ----> |
| ooop, btw, now ppl like to use stochastic methods in Operational research. So it is again not combinatorics. |
| AB + AD > BD AC + AD > CD 两个不等式加一下不就出来了 |
| 楼上两个不等式相加行吗?My answer: 延长BD交AC与E点,AE+AB>BE=DB+DE, CE+DE>DC,两不等式相加,=》 AB+AE+CE+DE>DB+DE+DC => AB+AC>DB+DC |
| 楼上tiainia大做法是不行的,因为AC不一定大于DC,同样AB也不一定大于DB |
| 我小的时候也很喜欢数学,在数学上花了很多时间,我是那种特善于独立思考的人,可是搞了几年的程序又有什么方法呢,有些远比你想像的困难! |
| 嗯,很受益啊! |
| 精英教育和平民教育都很重要,但是并不能统一起来,绝对精英教育,绝对平民教育都是不恰当的。 社会需要精英,更加需要平民,这两样都是不可以缺少的。可以国内的教育是怎样子的?能算精英教育吗?培养了多少个诺贝尔?精英精到哪里去了?然后多少连c都没掌握好,开机差点不会的大学生,平民平到哪里去了?高不成低不就,一踏糊涂才是中国教育的写照! 古代有因材施教。有天分的人,有兴趣的人确没有找到名师,这是教育的失败。然后只是希望找份工作,打一份工却没有学到实用的技能,这也是教育的失败。 |
| 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。” 延长CD交AB于E点, 则 BE+ED>DB AE+AC>EC=ED+BC 即AE+AC+BE+ED>ED+DB+DC 即AB+AC>DB+DC ****************** 柯南也做错了, EC != ED+BC 郁闷,竟然没有一个人能独立做出这道题 可能是笔误 AE+AC>EC=ED+BC 改为AE+AC>EC=ED+DC |
| 证明:AB+AC>DB+DC(D为三角形ABC的一个内点)。 几何证明在欧几里德的几何原本就有. Euclid I.21 If from the ends of one of the sides of a triangle two straight lines are constructed meeting within the triangle, then the sum of the straight lines so constructed is less than the sum of the remaining two sides of the triangle, but the constructed straight lines contain a greater angle than the angle contained by the remaining two sides. |
| 证明素数对之间的数字总能被6整除(假设这两个素数都大于6) ------------------------------ I don't know how to write it in a mathematical form, but the logic is: Out of 3 neighbouring numbers (n>6), at least one number is divisible by 3, and one number is divisible by 2. If in the 3 neighbouring numbers, 2 prime numbers are given, since prime numbers cannot be divisible by 2 or 3, the other number is divisible by both 2 and 3. Thus, it is divisible by 6. |

