第一章    绪论  

[      浏览次数:0 ]

 

什么是计算 ?

       

        1946年,电子数字式差分机的问世,标志着计算机时代的到来,六十多年来,计算机的发展经历了电子管、晶体管、集成电路、大规模集成电路4个时代,正在进入网络化、智能化时代。计算机应用从科学计算发展到信息处理、智能控制、媒体制作、设计制造、休闲娱乐。计算模式从单主机到客户机/服务器、浏览器/服务器、网络计算、云计算模式。然而,计算机仍然有它难易有它难以解释的和无法解释的问题。让我们以计算机基础开始。

 

      同学们说一说,什么是计算?

       

        计算由来已久,从远古人得结绳就开始使用计算。天文学家通过计算机分析天体的运动规律和物质的形成,生物学家通过计算机解释人类的遗传规律,经济学家通过计算规划国家的发展方向,工程师通过计算进行建筑、产品设计、社会学家通过计算揭示人类与宇宙的起源。
            

       计算是算法的执行,是从包含算法和输入数据的初始状态开始,经过一系列的中间状态,直到达到最终的目标状态的过程,而算法是若干条指令组成的又穷序列。一组可能的输入值和一组可能的输出值之间的映射关系称为函数,它使每个可能的输入都被赋予单一的输出,对于一个给定的输入,确定其具体输出的值,这一过程称为函数的计算。对函数进行计算的能力非常重要,这是因为正是通过函数的计算问题才能得到解决。
    

案例1:实现下列函数的计算,分析它们的特点和局限性。
       

        (1)去年每天的平均气温。
       

        (2)投资额为P,利率为r,投资n年后金额P(1+r)n

 

        对于可解的问题,又有难易之分,比如排序问题,人们就觉的是容易解决的问题,而学校中课表的编排,就觉得是复杂问题,因为要考虑到教室、实验室、课程、学生等资源均不能产生冲突,而且课程较多,资源越少,冲突的可能性就越大,越觉得复杂,到底什么样的问题是复杂问题,什么样的问题是难的问题呢?

     

        请同学们想一想,那些问题较复杂,那些问题较容易,从哪个角度说它复杂还是容易?

       

案例2证比求易问题

     

       从前,有一个酷爱数学的年轻国王艾述向邻国一位聪明美丽的公主秋碧贞楠求婚。公主出了这样一道题:求出48 770 428 433 377 171的一个真因子。若国王能在一天之内求出答案,公主便接受他的求婚。

 

        国王回去后立即开始逐个数地进行计算,他从早到晚,共算了三万多个数,最终还是没有结果。国王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很快就验证了这个数确能除尽48 770 428 433 377 171。公主说:“我再给你一次机会,如果还求不出,将来你只好做我的证婚人了。”

 

        国王立即回国,并向时任宰相的大数学家孔唤石求教,大数学家在仔细地思考后认为这个数为17位,则最小的一个真因子不会超过9位,他给国王出了一个主意:按自然数的顺序给全国的老百姓每人编一个号发下去,等公主给出数目后,立即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即上报,赏金万两。

 

         国王最先使用的是一种顺序算法,其复杂性表现在时间方面。
 

        后面由宰相提出的是一种并行算法,其复杂性表现在空间方面。

 

         直觉上,我们认为顺序算法解决不了的问题完全可以用并行算法来解决,甚至会想,并行计算机系统求解问题的速度将随着处理器数目的不断增加而不断提高,从而解决难解性问题,其实这是一种误解。

 

          当将一个问题分解到多个处理器上解决时,由于算法中不可避免地存在必须串行执行的操作,从而大大地限制了并行计算机系统的加速能力。

       

          在计算机科学领域中问题的求解都表示为算法,所以问题的复杂性解决问题的算法特性,对于理解的算法反而在计算机中更容易求解,而容易理解的算法却可能花不少时间,从这个角度上考虑的复杂性成为时间复杂性。而同意算法对不同规模的、在不同的机器上求解的绝对时间是不同的,这显然不是算法的不同带来的,所以,算法的时间复杂度常是看算法中需要的主要运算的次数和问题的规模的关系。例如,两个N*N 矩阵的乘法,每个元素需要N个乘法和N-1次加法,而要计算N *N 个元素,在计算机运算中,乘法的运算比加法更复杂,所以主要考察乘法的你次数,大约是N3次乘法,所以说矩阵相乘的时间复杂度是O(N3),即和N3是一个数量等级的。同一个问题可以有不同的算法,通常用其中复杂度最小的作为问题的时间复杂性。

       

      计算机中的内存是有限的,因此节约内存的算法对较大问题就很重要。通过度量程序所需来衡量复杂性称为空间复杂性。空间复杂性也使用问题规模的数量级来表示的。空间复杂性和时间复杂性常常是矛盾的,在设计算法时需要折中。

 

案例3:图灵的基本思想是用计算机来模拟人们用纸笔进行数学运算的过程,他把这样的过程看做下列两个简单的动作:

 

      (1)在纸上写上或擦出某个符号;

 

     (2)把注意力从纸的一个位置移动到另外一个位置。

 

         而每个阶段,要决定下一步的动作,都要依赖于当前所关注的纸上某个位置符号和此人当前思想的状态。

 

          图灵机是由一个控制单元组成的,能够通过一个读/写磁头对两端可以无限延伸的磁带上的符号进行读和写的装置。

 

         在图灵计算的任何一个时刻,计算机一定处在有限个条件中的一个,这些条件称为状态,图灵机的计算开始于一个特定的状态,而停止于另一个特定的状态,称为停止状态。图灵机的计算由计算机的控制单元执行一系列步骤所组成。每一步都包括:观察当前磁带单元中的符号,然后将符号写进这个单元,期间可能要将读写磁头左移或右移一个单元,接下来再改变状态,要执行确切活动是由程序所决定的,程序通过计算机的状态和磁带当前单元的内容来告诉控制单元做什么。

 

案例4:计算尺的基本原理是利用对数将乘法转换为加减法。计算机将数据变换为电信号、磁信号,进行信息的传 输和存储 ,对计算机中的乘法、除法,也常常是转换为加法、减法和移位运算进行的。这给我们的启示是什么?   

 

计算学科的三种形态

 

        抽象—理论—设计(三种形态):计算学科中的基本内容,基本概念;同时反映了人们的认识是从感性认识(抽象)到理性认识(理论),再由理性认识(理论)回到实践(设计)中来的一般科学思维方法。

 

        科学抽象是指在思维中对同类事物去除其现象的、次要的方面,抽取其共同的、主要的方面,从而做到从个别中把握一般,从现象中把握本质的认知过程和思维方法。

 

         科学认识由感性阶段上升为理性阶段,就形成了科学理论。科学理论是经过实践检验的系统化了的科学知识体系,它是由科学概念、科学原理以及对这些概念、原理的理论论证所组成的体系。

  

        设计源于工程,用于系统或设备的开发,实现给定的任务 ™设计形态和抽象、理论两个形态都须以对自然规律的认识为前提 设计必须创造出相应的人工系统和人工条件,还必须认识自然规律的具体表现形式 。

 

 


                                                                                                                                               下一页