计算机与数学

计算机科学数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),-- 也就是理论计算机科学。现代计算机科学和数学的另一个交叉是计算数学/数值分析/科学计算,传统上不包含在理论计算机科学以内。所以本文对计算数学全部予以忽略。

最常和理论计算机科学放在一起的一个词是什么?

答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变,实变,泛函等等。实变和泛函被很多人认为是现代数学的入门。在物理化学,工程上应用的,也以分析为主。
随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的对象是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。
离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:
1) 集合论,数理逻辑元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。

但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?

一直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
第一,针对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。
第二,Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,
都是有用的数学!

前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计复杂性分析,密码学信息安全,分布式计算理论,并行计算理论,网络理论生物信息计算,计算几何学程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。

下面随便举一些例子
由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论概率论和随机过程的基础上,有时也用到图论和组合学等。

https://blog.csdn.net/a964867027/article/details/82585018

原文地址:https://www.cnblogs.com/feng9exe/p/10608641.html

时间: 2024-10-17 06:45:30

计算机与数学的相关文章

计算机与数学之数据范围

废话不说,先来一段程序,诸位童鞋们猜猜这段程序的输出: #include<stdio.h>#define MAX 255 int main(int argc, char **argv) { unsigned char i, a[MAX]; for(i = 0; i <= MAX; i++) { a[i] = i; } for(i = 0; i <= MAX; i++) { printf("%d ", a[i]); } printf("\n")

大数据vs计算机

大数据有两个方向,一个是偏计算机的,另一个是偏经济的.你学过Java,所以你可以偏将计算机 基础1. 读书<Introduction to Data Mining>,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人.另外可以用这本书做参考<Data Mining : Concepts and Techniques>.第二本比较厚,也多了一些数据仓库方面的知识.如果对算法比较喜欢,可以再阅读<Introduction to Machine Learning>.当然,还

学计算机的值得一看的文章,跟帖也很有水平啊

转自http://blog.csdn.net/Xviewee/article/details/1606247 回复CSDN和KAOYAN诸位网友的几点看法,(为避免吵架,郑重声明,本人不是高手,只是有感而发的一点个人陋见,欢迎指正,事先感谢): 就我自己的理解,谈谈我对读研和软件学院的看法,不妥之处一笑了之即可. 如果你有实际开发工作经验,感觉自己的水平和实力进入了一个高原期,迫切需要从理论上提高,那么计算机学院是唯一选择.因为计算机学院才能让你在理论上更上一层楼.软件学院从教学计划上就没有

一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)

转自:http://www.math.org.cn/forum.php?mod=viewthread&tid=14819&extra=&page=1 原作者: wcboy 现在的论坛质量比以前差了,大部分都是来解题问答的,而且层次较低.以前论坛中,Qullien很令人印象深刻,但愿他能在国外闯出一片天空.现在 基础数学版代数&数论子版中那几个讨论代数几何的还不错.不期望目前论坛出现很多高层次高手,高层次高手应该站在好课题上高观点讨论数学,出 现这样的网友,看他们的言论非常过

【转】《胡侃学习(理论)计算机》前后篇及两篇补充

今天推荐的是篇老帖,南京大学sir先生的<胡侃>以及后来的两篇补充帖子.算算是十几年前的帖子了,我知道帖子出自南京大学的BBS,百度了一下,却没有翻到原文.不过百度到了一大堆不负责任的转帖,我想我这也不算是抄袭了吧.当年有一位我很尊敬的学长给我推荐的这篇文章,让我受益匪浅(学长当年年轻气盛因为这事还吃过不少亏,他自己一直很内疚). 这几篇帖子适用于学习计算机理论,对于大学本科想要好好学计算机的同学,或者是工作后想要系统的学习计算机及数学理论的同学很有帮助. ==========转载需要分隔线=

转帖:励建书:数学有助于大众理性思维的培养

励建书:数学有助于大众理性思维的培养 [编者按]网易科技今年推出大型系列报道<科学家说>,专访全球顶尖科学家,洞见趋势,分享智慧.今天推出<科学家说>第16期,专访著名数学家励建书. 出品|科学家说栏目组作者| 网易科技 温泉[他是谁]励建书,著名数学家.中国科学院院士.上海交通大学数学科学学院院长.未来科学大奖科学家委员会委员,从事数论与李群表示理论的研究.1994年被邀在国际数学家大会上作45分钟报告,为国际知名数学家.[看得见的未来]数学理论越来越向深处演化,越来越专门化.未

计算机学科漫谈

在这篇博文里,我想和大家聊一聊自己对计算机学科的理解.当下本科阶段的计算机专业教学涉及计算机学科的方方面面,分类繁杂,有时可能令新人茫然不知所措.那么,对计算机专业的学者来说,什么是最重要的呢?我相信,一千个读者,一千个哈姆雷特,同样的,每个计算机的学习者都有自己对专业的一番认识.如果说本科四年的计算机专业课程是对专业知识的横向积累,那么把握计算机专业的本质的内容则需要纵向的思考.因此我个人的观点是:对计算机系统整体概念的理解在计算机专业学习中尤其关键.于是我把自己对专业的理解和认识总结出来,希

认识数学各个分支

数论 人类从学会计数开始就一直和自然数打交道了,后来由于实践的需要,数的概念进一步扩充,自然数被叫做正整数,而把它们的相反数叫做负整数,介于正整数和负整数中间的中性数叫做0.它们和起来叫做整数. 对于整数可以施行加.减.乘.除四种运算,叫做四则运算.其中加法.减法和乘法这三种运算,在整数范围内可以毫无阻碍地进行.也就是说,任意两个或两个以上的整数相加.相减.相乘的时候,它们的和.差.积仍然是一个整数.但整数之间的除法在整数范围内并不一定能够无阻碍地进行. 人们在对整数进行运算的应用和研究中,逐步

程序员为什么一定要学好数学?驻足听一下“老人言”

讲一下自己的惨痛经历!三个方面: 1.数学?不存在的,老子只学专业课! 2.数学?不学不行,老子还得去补一下! 3.数学?不仅仅要学,还要深入学! 1.数学?不存在的,老子只学专业课! 学习之初,很多人都会有这样的困惑.包括我在内,我想学计算机专业,老师你就直接单枪直入,教我专业性的东西啊,光教一些跟编程八竿子打不着的数学干啥?! 这样导致的一个结果就是,每次基础学科考试总是应付了事,抱着能过能及格的心态一路走来,不遇坎坷就一直坐着自由落体的运动! 2.数学?不学不行,老子还得去补一下! 我学习