回复 17楼 jiangkunhgnc
说计算机和数学没关系肯定是害扯的,但不用为了学计算机而特意去学数学。
就跟你说的一样,学习图论也许会对学习数据结构(其实我觉得它和数据结构关系不是很大)会有帮助,但为了这个去学数学其实没什么意思。因为只要思维好又有一定的基础,直接看数据结构应该就能看懂,而里面事实上没有涉及太深的数学知识。
而图论,虽然你说它是离散数学里讲的,但其实离散数学里这门课的重点是数理逻辑和集合论。它是做为现代数学的基础理论而存在的。至于离散里面也提到的诸如代数结构呀,图论什么的,都是专门的学科了,离散数学里讲的只是一点皮毛。代数结构(或称近世代数)是大学本科的内容,初等图论是研究生课程。学习图论也许对研究图论算法有帮助,但是专用算法可以专门学。即使编程水平很高的人,也不可能对各方面的算法面面具到。
你说把多维数组理解成多维向量,这太偏了。我觉得这样应该不能加深理解,而且除非能和现实建立映射的少部分情况,编程中应该尽量不使用二维以上的数组也算是一种常识。事实上在数学里多维数组的研究最多也还是用矩阵这种工具,多个向量排在一起,不过也就是一个二维表,超不过三维。无限维的向量由于要用超限归纳,所以不属于基本的研究范畴,但它在总体也是二维的。
如果要说一个在数学里使用多维向量做研究工具,而在计算机理论中发挥重要作用的学科,应该是编码理论。但它的理论基础是代数结构,已经相当高深了。相关的定理的证明涉及的东西很多,不是专业搞数学的,要看懂不容易。做计算机理论的学者除外,实际搞开发的,大约只能背一些研究好的结论,然后利用行业的经验做东西。
你说的数值计算可能是和数学相对亲密的一个领域了,但学习专门的数学知识和学习专门的计算方法本来就几乎是同一个过程。而且计算机工作者如果不需要做这方面研究的,不学这些知识也没事。不是所有的编程达人都会搞数值计算。
还有你说的数论算法也是专门的算法。那些算法得学,即使数学好,也不可能自己推出那些算法来。
当然数学基础很重要。这一点不容置疑。
[
本帖最后由 pangding 于 2010-8-28 12:34 编辑 ]