编程所需的数学知识
计数的能力:在for循环中经常用到,小学生都会。
数字加减乘除:每一种编程语言都有内置支持,不需要你自己去计算。
余数和模数:偶尔使用。
集合运算:交集、并集、差集,编程中用的不多。
布尔运算:与、或、非
各种系统:二进制,十进制,十六进制。
还有什么?我不记得了。欢迎补充。
当然,这和我从事的编程领域有很大的关系。如果我做的不是Web开发,而是搜索、游戏、安全、算法、人工智能等。,对数学的要求估计会飙升。
其实计算机的基础是数学,只是我们一直在应用层编程,看不懂。
比如我们日常使用的计算机,大部分都是所谓的冯诺依曼结构(见文章《冯诺依曼计算机的诞生》)。这个结构可以说是概念机图灵机的具体实现,这是一个纯数学的东西。没有图灵机的伟大抽象作为数学基础,现代计算机是无法制造出来的。
再比如,密码学领域需要大量的数论知识,RSA算法涉及大素数的分解;
Mysql、Oracle等关系数据库的底层基础是离散数学的笛卡尔乘积。
通信系统中一个非常重要的原理是傅立叶变换。
编译器将使用有限状态机;
数据压缩会用到各种数学算法;
在项目管理的进度管理中,甘特图的数学基础是图论。