3、论道(一)数学是基础
木鸿飞连续编写动画程序三天了,各种方式、各种图形都试过一遍,简单的动画已经不能提起他的兴趣,当然复杂的也设计不出来,暂时处于编无可编的状态,只好去咨询哥哥。
“我想设计游戏,或者开发一部动画片,做得到不?”木鸿飞脑海中浮现出变形金刚的画面。
“可以!完全可以实现。”哥哥斩钉截铁的回答。
“哦,耶!”自己设计情节,自己开发程序,自己导演一部动画片,木鸿飞想入非非,甚至开始恶意透支成功后的喜悦。
“那么我应该学习哪一本书呢?”幸好,木鸿飞没有完全被幻想冲昏头脑,没有忘记必须先学习才能实现梦想的道理。
“我想想。”哥哥来到书架前,目光不断地扫描上面满满的书本,然后从中间抽取了几本书,“首先要学习《数学分析》,一共三册,然后是《线性代数》,还有《计算机图形学》。当然这些都是基础,还远远不够,还有很多专业书籍要学,哦对了,至少还要学会一门语言,比如C语言等。”哥哥一丝不苟的回答,似乎在故意打击木鸿飞的气焰。
“这么多,要学多久?”木鸿飞大吃一惊。
“一般要大三才开始学习《计算机图形学》,这之后你就可以编写简单的图形。但是要设计一部动画片就不是这么容易了,还需要学习计算机图形的硕士研究生和博士研究生专业,时间不长,大概4~7年左右。当然做动画片,还需要有美术天赋,不然画出的东西丑不垃圾的,没有人会看。而且还要有导演方面的能力,这方面的我就不知道了。”哥哥继续一丝不苟的打击木鸿飞。
“不是吧,要那么久?”木鸿飞一百个不相信,“一本《计算机图形学》而已,现在学习也可以啊!为什么要大三才学习?”
“因为前面有很多基础课程要学,除了《数学分析》、《线性代数》,还有《操作系统》《数据结构》《离散数学》等等很多,还有就是大一大二要学好英语过四级。”哥哥说道。
“我可以先学《图形学》,同时再学看其他的教程啊,或者直接照敲别人的代码啊。”木鸿飞道。
“不行的,学习计算机必须要打好基础。”哥哥坐了下来,满脸郑重其事的神情:“你知道吗?时下计算机是最热门的专业,各大高校计算机专业都在扩招。你们上一届只有2个班,这一届扩大成4个班。很多原本没有计算机专业的学校也纷纷增设这门专业,我们专业开设是很早的,85年就有了,以前湖南只有3个学校有计算机专业,现在几个大的本科学校都开设了!还有,别只看眼前计算机专业毕业生多么好找工作,等4年后就不一定了!你们毕业时,肯定人满为患。而且很多非计算机专业,甚至包括文科的一些专业,也都开设了计算机编程课,甚至国家94年时还开设了计算机等级考试,这个考试主要针对非计算机专业的学生。也就是说,计算机势必成为一种工具,一种人人都会的工具,将来会计算机就如同拿驾照会开汽车一样普遍。那么,从大范围上讲,在如此多的懂计算机的人群中,你这个计算机专业的学生的优势在哪里?从小范围上将,在如此多计算机专业的学生中,你的优势在哪里?等你毕业时,怎么找一个好工作?一言以蔽之,怎样让你在计算机专业学生中最牛,你想过没有?”
“没有,”木鸿飞摇头,“我还没有读大学,当然没有考虑大学以后的事情。”
“那么我现在告诉你。首先我们计算机专业与其他非计算机专业相比,我们的优势就是专业基础课!我们开设了专业基础课,比如数据结构、操作系统等等,但其他专业没有,他们只开设了语言编程课。”哥哥顿了顿,然后问道:“你知道计算机专业的基础课程有哪些吗?”
“不知道。”木鸿飞一如既往的摇头。
“主要可以分为两大类,一类是数学基础课。”哥哥说道。
“数学课?”木鸿飞大为不解。
“对。数学课程。很多人不明白数学系和计算机系的关系,其实计算机系来源与数学,咱们计算机系以前是数学系的一个教研室,后来独立出去的。中国科学院很多计算机院士以前都是学数学的,还有计算机之父——冯·诺依曼,就是一个数学家。”哥哥细心的解释。
“数学在计算机中都有什么应用呢?”木鸿飞根据疑惑,不解的问。
“很多算法都需要数学。比如多媒体压缩,存储一张图片需要几兆空间,很耗费存储资源,怎么办?这时你提出一种算法,利用这种算法,可以把用几百K的空间存储几兆的内容。而要发明这个算法,就需要高深的数学知识,比如需要什么微积分知识啊,线性变换知识啊,等等。”
“再比如说这个问题,”哥哥从书架中抽出一本书,“有一个旅行家,立志要游遍祖国的大好河山,他决定先游览所有的省会城市,于是任意从一个省会出发,不重复的游遍所有的省会。现在问题来了,问他应该选择怎样的旅游线路,才可以使最后旅行的总路程最短?书的附录中给出了所有两个省会之间的直线距离,现在你来回答走哪条线路。”
“让我想想,”木鸿飞摸摸下巴,皱着眉头,“计算所有的可能的路径,从中间选择最短的。”
“很好,你的方法叫做‘列举法’,列举法的优点就是他的缺点,也就是根本不能列举所有的情况。”哥哥拿出一个计算器,“高中学习了排列组合,你算算一共有多少种可能的路径。”
“好的。总共34个省会,第一站有34种情况,第二站有33种情况,第三站有32中情况,这就是一个排列问题!所有的可能有P34种,也就是,”木鸿飞开始在计算器上面输入:“34乘以33,乘以32,乘以31,……,乘以,矣?动不了了,计算器死掉了!”
“哈哈,当然了,数目太大了!”哥哥一幅“早知如此”的神情,“这个数字已经有人算过了,大概是2.9乘以10的38次方!什么概念?假设计算机的运算速度是每秒钟百亿次——这个运算速度很快了——你自己算算需要多久才可以算完。”
“不用算了,肯定很大。”木鸿飞这回学聪明了。
“所以列举法行不通。”哥哥下结论,“即使计算机的运算速度在提高一百遍,也行不通!”
“那——就——”木鸿飞继续思考,转转眼睛,计上心来,“每次选择最近的没有访问的省会。”
“这种方法叫做‘贪心法’,贪心法是得不到好结果的。”哥哥说道。
“那我就不知道了,哥哥,你说最短路径是多少?”木鸿飞寻找放弃。
“我也不知道!旅行家问题就是《离散数学》中的最短路径问题,目前还没有人给出一种有效的方法。如果有人解决了这个问题,就可以立即评为教授!”哥哥说道。
“真的吗?这本书的作者评为教授没有?”木鸿飞狡诈的问道。
“他本来就是教授了!不用评。”哥哥回答道,然后指了指书本,“而且这本书给的距离已经不是最短的了。上次楼上有一位其他系的老师听我讲了这个问题后很感兴趣,把书借过去研究了很久,然后找到了一条更近的路径。他专门写了一篇论文,文后还对我表示了感谢!”
“是吗?他评为教授了!”木鸿飞问。
“没有。”哥哥摇摇头,“第一,他没有给出一种方法,而是乱找找到的。第二,这本书其实比较久了,现在已经有人给出了更加短的路径。”
“哦,给出更短路径的人评为教授了吗?”木鸿飞打破沙锅问到底。
“我不认识他们,不知道!”哥哥没好气的说道,“不要纠结评教授的事情了!跟你讲旅行家问题,就是要告诉你,数学是计算机的基础,要掌握计算机,学好数学必不可少!”
“数学是计算机的基础,”木鸿飞自言自语道,但马上提出了一个疑问:“假如说计算机专业的一类基础课程是数学,但问题是,一般来讲计算机系学生的数学不如数学系的好,既然如此,我们与数学系的相比,不就没有竞争优势了吗。”
“这个问题问的好,所以我们的计算机专业的第二类基础课程就是计算机专业课程。”哥哥说道。
预知后事如何,且听下回分解。