引言:
数学是一切科学的基础,也是计算机科学的基础。
不仅一切算法基于数学,而且没有数学,是无法编程的。
编程中的加减乘除运算基于数学。
编程中的if/else判断是数学的逻辑判断。
编程中的进制转换是基于数学。
数据库的left join等也是运用了数学中的集合。
光这些基础的,可能有人不以为然。再看一道编程题。
给定表达式[x/2] + y + x * y, 其中x,y都是正整数。其中的中括号表示下取整,例如[3/2] = 1 , [5/2] = 2。
有些正整数可以用上述表达式表达出来,例如正整数2,当取x = y = 1时,可以把2表达出来 ( 解释下:当x=y=1时, [x / 2] + y + x * y = [1 / 2] + 1 + 1 * 1 = 0+1+1 = 2 );
有些数可以有多种方式表达,例如13可以由 x = 2 y = 4 以及x = 3 y = 3来表示;
有些数无法用这个表达式表达出来,比如3。
从1开始第n个不能用这个表达式表示出来的数,我们叫做an,例如a1=1 a2=3,给定n,求an。
这道题可以说不懂梅森质数,大数取模(a^n mod b)是不可能做出来的。
数据结构中的图论等等基于数学,一切算法皆基于数学。
“高等数学在数学计算机科学基本用不上”,这句话可以说大错特错。说出这句话的,要么压根就不是编程人员,要么就是连编程的大门都找不着。
就拿现在最火爆的人工智能来说,先看最简单的近邻算法。
再看决策树
再看贝叶斯
再看梯度上升/下降。
svm
可以说,没有高等数学,连人工智能的门都找不着,如何编程?
数学不是异常糟糕的语言,更不是落后的语言,相反,数学是最简洁最优雅的语言。
编程不过是数学实现的一种工具。
如果想在编程路上走,尤其想在人工智能这条路走,请好好啃数学。
个人编程多年,一如老老实实啃数学。
领取专属 10元无门槛券
私享最新 技术干货