要想成为一名顶尖的程序员,要学习高等数学吗?

桂林seo半杯酒博客

首先声明一个,数学好并不代表你就能成为顶尖的程序员,但数学不好可能会影响你成为一个优秀的程序员。

那我就简单地举一下例子吧,不知道大家有没有接触过Project Euler。

Project Euler是一个具有挑战性的不仅仅需要具备数学能力的“数学/计算机编程”问题集合。数学方面的知识可以帮助你获得优雅而高效的解决方案,与此同时,计算机应用和编程技巧也不可或缺。

有一次,我从Project Euler找到一个问题,通过正常的算法模型,解决这个问题,需要运行六个小时才可以。而就在代码运行的过程中,我重新分析了这个问题,发现这个问题中数字间似乎存在一点关系,而这个时候加减乘除似乎并不太够用,开始尝试用二分法去解决。我再次运行,这次得到仅消耗了 6分钟。而这与最开始使用的算法模型的效率有了天差地别。

从360分钟到6分钟实现了效率60倍的提升,这效率值杠杠的。你想想,如果一个系统输出结果要等6个小时,却因为你的优化,6分钟就搞定了,老板还不给你发一个大大的鸡腿吗?

60倍的效率提升,感觉还可以做得更好些。再次回到数字中去,数字又重新跟我招手,而我也发现了另外一种没有见过的模式,而这一次解决这个问题只需要花1分钟。

是的,没错,通过数学把问题解答从360分钟优化到1分钟。

而我也尝试仅从编程层面和并行去暴力优化代码,确实让整体的运行效果提升了,但是依然没有办法使之少于1分钟。而这就是数学隐藏的能力。

数学/算法好的程序员↓↓↓

数学/算法不好的程序员↓↓↓

跟黑鸟君,另眼看世界!