❶ 数学对编程的作用,最好是程序员来回答.
其实编程可以看做是数学的模式化,数学培养的是分析问题解决问题的能力,在编程初级来讲,数学是体现不了多大的作用,因为初级的编程只要求对于法和简单算法的掌握,用不到太高深的东西,但在数据结构,算法中,数学就尤为重要了,有时候需要用数学来证明一些类似于最短路,最短时间,空间复杂度,时间复杂度的问题,还有通过数学计算出最优的解法,初级编程很那理解,但当你要将一段功能很强大的程序写到一个只有几十K甚至更小的空间里,你就会发现用数学推导的作用了。举个简单的例子,关于计算机软件方面的考研,名师们一般都喜欢数学更好一些的学生,哪怕专业课稍差一些
❷ 编程与数学的关系是什么
数学是一门工具性很强的科学,它与别的科学比较起来还具有较高的抽象性等特征。起初是计算机科学工作者离不开数学,而数学工作者认为计算机对他们可有可无,但是现在是互相都离不开对方了,计算机也提高了数学工作者在人们心目中的地位,大部分的数学工作者开始认识到计算机的重要性,并越来越多地进入到计算机领域发挥作用。但是随着人工智能、GPS(全球定位系统)等飞速的发展和计算机运算性能飞跃性的提升,计算机的优势越来越深入到思维领域,于是计算机将高深的数学理论用到实际中来,十分有效地解决了许多实际问题,例如著名难题四色问题就是被计算机证明的。问题的求解过程中有许多具有实用价值的数学分支如分析几何、小波分析、离散数学、仿生计算、数值计算中的有限单元方法等。它让人们知道计算机程序设计结合的就是数学知识和数学思想。
软件编程是基于数学模型的基础上面的,所以,数学是计算机科学的主要基础,以离散数学为代表的应用数学是描述学科理论、方法和技术的主要工具。软件编程中不仅许多理论是用数学描述的,而且许多技术也是用数学描述的。从计算机各种应用的程序设计方面考察,任何一个可在存储程序式电子数字计算机上运行的程序,其对应的计算方法首先都必须是构造性的,数据表示必须离散化,计算操作必须使用逻辑或代数的方法进行,这些都应体现在算法和程序之中。此外,到现在为止,算法的正确性、程序的语义及其正确性的理论基础仍然是数理逻辑,或进一步的模型论。真正的程序语义是模型论意义上的语义。于是软件编程思想运行的严密性、学科理论方法与实现技术的高度一致是计算机科学与技术学科同数学学科密切相关的根本原因。从学科特点和学科方法论的角度考察,软件编程的主要基础思想是数学思维,特别是数学中以代数、逻辑为代表的离散数学,而程序技术和电子技术仅仅只是计算机科学与技术学科产品或实现的一种技术表现形式。
(一)数学在计算机领域的发展
如今形形色色的软件,都与数学有必然的联系,它们相互相成。例如,逻辑学在学科中的应用从早期的数理逻辑发展到今天的程序设计模型论;数学在学科中的应用从早期的抽象代数发展到今天的图形学、工程问题方面;几何学的应用从早期的二维平面计算机绘图发展到今天的三维动画软件系统,并在与复分析的结合中产生了分形理论与技术;在游戏、图形软件开发中引用了线性代数中大量的坐标变换,矩阵运算;在数据压缩与还原、信息安全方面引入了小波理论、代数编码理论等。
(二)软件编程的思维定式
软件编程的思维定式决定了一个人编程的水平,在编程过程中,数学思维清晰,编写出来的程序让人耳目一新。结合教学,通过调查分析,了解到超过85%的学生,他们在编程时是根据语法而编写程序,完全脱离了软件编程的思维,这种思维定式使得他们编写的程序相当糟糕,没有一点逻辑。
之所以造成这种软件编程的思维,是因为他们平时对数学思维的培养不够重视。很多学计算机的学生想:学高数,这有什么用?学线性代数有什么用?学离散数学,有什么用?于是他们很少去上这些课,马马虎虎,整天闷在寝室里,玩玩游戏,装装软件,看看C语言。只知道概率问题和矩阵知识在其它课程上起到了互补作用,学的不是很深。但是当他们看到<<数据结构和算法>>时,感到其中的内容对他们而言感觉相当的艰涩难懂,这时他们就隐约感觉到了数学思维的作用了。在此之前,他们不仅荒废了大学的高等数学,连初中的初等数学也忘的好多,当他们进行高抽象思维时,确实感觉自己的思维已经很迟钝了。学计算机的学生之所以觉得《数据结构》这门课程很难,就是因为他们的数学思维锻炼的不够!其实生活中有很多这样的例子:对于一个刚毕业的,编应用软件的大学生,在编程中用到《线性代数》的矩阵时,恐怕便会想,在大学把线性代数学好就好了;当在程序中用到动态链表、树时,恐怕也会想“在大学时花点时间去学《数据结构》,会多么的有意义”;当学数据结构时,恐怕也会想“学《离散数学》时为什么要逃那么多的课,要不然学离散的时候就会很轻松”。所以数学思维不够,在软件编程会有很多的疑虑,显的有点缩手缩尾,而且写的程序也不够健全,缺乏逻辑。
(三)软件编程与数学思维的融合
很多专业人士觉得数学和软件编程能力就像太极和拳击,软件编程能力很强就好比出拳速度很快很重,能直接给人以重击;数学很好的话就好像一个太极高手,表面上看没有太大的力量但是内在的能量是更强大的,但是好的拳击手是越年轻越好,而太极大师都是资历越深越厉害。所以数学是成就大师的必备能力,虽然很多学生看上去感觉没有什么用途,但是到了一定的水平之后就会体会它的力量了。
❸ 线形代数,离散,概率论,高数分别对计算机编程起什么作用
1.线代、高数、概率数学对计算机编程基本没用处,稍稍有些用的是离散;
2.计算机编程起初主要是为了解决数学计算问题;
3.如果你想解决数学问题,应该要学习这些数学,如果编程是为了其它目的,不学也可以。
❹ 为什么说线性代数对学计算机的很重要
线性代数对学计算机很重要。应用计算机的高速运算功能解决实际问题离不开线性代数的知识。
计算机图形学、计算机辅助设计、密码学、虚拟现实等技术无不以线性代数为其理论和算法基础的一部分。线性代数所体现的几何观念与代数方法之间的联系,从具体概念抽象出来的公理化方法以及严谨的逻辑推证、巧妙的归纳综合等,对于强化人们的数学训练,增益科学智能是非常有用的。
线性代数的含义随数学的发展而不断扩大。线性代数的理论和方法已经渗透到数学的许多分支,同时也是理论物理和理论化学所不可缺少的代数基础知识。总之,线性代数对学计算机很重要,方法和思想并重。
(4)普通代数对编程的作用为什么扩展阅读:
定理:
1、矩阵非奇异(可逆)当且仅当它的行列式不为零。
2、矩阵非奇异当且仅当它代表的线性变换是个自同构。
3、矩阵半正定当且仅当它的每个特征值大于或等于零。
4、矩阵正定当且仅当它的每个特征值都大于零。
5、解线性方程组的克拉默法则。
6、判断线性方程组有无非零实根的增广矩阵和系数矩阵的关系。