编程所需要的数学知识
发布网友
发布时间:2022-05-02 08:36
我来回答
共1个回答
懂视网
时间:2022-08-15 21:38
1、首先大学里的基础课程高等数学是必须的,这可能对写算法来说没有什么太直接的关系,高等数学是最基本的东西,里面的很多概念性的东西都是编写程序相关的,是学其他几门数学课程的基础。
2、线性代数,这们课在工科专业一般都开,很重要,尤其讲到的举矩阵、集合等等,是以后在程序开发中能直接用到的,而且,线性代数里一些问题的解决方式能很大程度地活跃你的思维。
3、离散数学,离散数学是计算机和软件工程专业必学的课程,和计算机程序直接相关,举例来说,在设计一条数据库的SQL语句进行联表查询, 可以直接写上一大串来实现查询,但如果能用离散数学里学到的逻辑推理和范式对SQL语句进行简化,那么SQL语句查询速度可能会有上百倍的提升。
4、有兴趣可以学一学组合数学,这是研究生的课程之一,但提前学一学还是很有好处的,里面很多结论、推理都会让人受益非浅,学好了这门数学,程序质量将上升到另外一个高度。
热心网友
时间:2023-06-21 20:42
计数的能力: for循环中经常用, 小学生都会。
数字的加减乘除 : 每种编程语言都会内置支持, 都不需要你自己算
余数和模: 偶尔会用得到
集合运算: 交集、并集、差集 , 编程中用的不多。
布尔运算: AND , OR, 非
各种进制: 二进制、十进制、十六进制
还有哪些? 我想不起来了, 欢迎补充。
当然这和我从事的编程领域有极大关系, 如果我做的不是Web开发, 而是搜索,游戏, 安全,算法,人工智能等, 那对数学的要求估计就开始飙升了。
其实计算机的基础是数学, 只是我们一直在应用层编程, 体会不到罢了。
比如说我们日常使用的计算机,绝大部分都是所谓冯诺依曼结构(参见文章《冯·冯诺依曼计算机的诞生》) ,这个结构可以说是图灵机这个概念机器的具体实现,而图灵机就是一个纯数学的东西啊 ,没有图灵机这么伟大的抽象作为数学基础, 现代的计算机是制造不出来的。
再比如说密码领域需要很多数论的知识,RSA算法就涉及到大素数的分解;
我们常用的Mysql, Oracle 等关系数据库的底层基础是离散数学的笛卡尔乘积;
通信系统中很重要的一个原理就是傅里叶变换。
编译器会用到有限状态机;
数据的压缩会用到各种数学的算法;
项目管理中的进度管理,甘特图数学基础就是图论。