设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 388|回复: 0
收起左侧

蚂蚁拼图~有意思的思维锻炼

[复制链接]
发表于 2018-1-2 14:15:58 | 显示全部楼层 |阅读模式
导读
作为一名资深程序员,对于实际工作来说,我认为最有价值的是对算法、时间复杂度的理解,以及对问题的分析能力、对问题解法的判断能力。今天这篇文章,让我们来锻炼一下自己的逻辑思维能力吧~希望对大家有帮助~
现如今工作中,算法重要吗?
现今计算机科学已经发展到比较发达的阶段,不太可能一个个人学会所有的算法,解决具体的问题的时候,有时候还是更需要通过先分析问题,然后查阅资料、思考设计、甚至是讨论,最后再实现的方式去解决。
算法也有很多不同的分支,其面向的需求不同,适用范围不同,通常的“交流”圈子也不同,比如“图形学算法”、“人工智能算法”、“分布式算法”,不同分支下的基本概念和思考方式都不同,分析问题和理解他人方法所需要掌握的“常识”也不同。每个分支下又是每年都有大量的新论文、新方法出现,也不断伴随着新需求、新的应用场景。所以,掌握基本方法和概念,根据需求去深入学习相关的算法才是比较好的选择。

和精通某些具体算法相比,更重要的是通过研究算法养成良好的思考和解决问题的能力,算法诚可贵,思考价更高。
问题:
有三只蚂蚁坐在三角形的三角。所有的蚂蚁随机挑选一个方向,并开始沿着三角形的边缘移动。两只蚂蚁碰撞的概率是多少?
解答:
三角形有三个顶点,每个顶点连接两条边,每只蚂蚁有两个选项,每个选项有1/2的可能性。
有两种情况,当所有的蚂蚁都朝相同的方向移动时,蚂蚁不会碰撞
顺时针
所有蚂蚁以相同顺时针方向移动的可能性为1/2 * 1/2 * 1/2 = 1/8
逆时针
所有蚂蚁以相同的逆时针方向移动的可能性是1/2 * 1/2 * 1/2 = 1/8
不碰撞的总概率是1/8 + 1/8 = 1/4
所以,碰撞概率变成:1 - 1/4 = 3/4
总结
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实大家都被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好,开源站点:http://www.linuxprobe.com/


您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-20 05:43 , Processed in 0.050580 second(s), 7 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表