算盘
图1-1 四种计数方法
结绳计数是用绳子打成各种不同形状的结,来表示对应的数字。如图1-1所示结绳计数,上面一行绳结表示一到十,下面一行绳结表示十、二十、三十、千、百、万。不同的绳结组合后可以表示任意数字。接着我们来看第三种计数方法。
●算筹
什么是算筹呢?筹就是小数棒的意思,算筹就是用来计数的小数棒。
如图1-1所示算筹,小数棒有两种摆放的方法,我们可以横着放也可以竖着放。分别来表示0到9 十个符号。
祖冲之就是利用算筹这种形式来计算圆周率的。注意,此时已经有了0的概念了。0的出现标志着我们人类一个巨大的进步。在我们数手指或者结绳计数的时代并没有0的概念。到了公元400-500年之间,中国才有了0的概念,而且也有了符号的概念。符号就是将手指、绳结、小树棒抽象化为方便读写的计数符号。
科普一下,我们现在日常使用的阿拉伯数字是由印度人发明,在宋代由阿拉伯人传入中国的。接下来我们再看第四种计数方法算盘。
●算盘
算盘最早是由东汉末数学家徐岳发明的,可以看作是早期的计算机。可以进行计数,也可以用来进行十六进制或十进制加减乘除算术运算。如图1-1所示算盘,算盘上面有两个珠子,下面有5个珠子。算盘是如何进行计算的呢?其实非常简单,我们只需要去记住加法口诀表和乘法口诀表就可以进行加减乘除计算。加减乘除算术运算其实本质就是查数查表。
总结
手指、结绳、算筹和算盘都是使用具体的实物来计数,当我们将这些实物抽象为可书写的符号时,我们就可以很方便地进行加减乘除算术运算。我们将在第二章学习数据的表示方法和算术运算,第三章学习逻辑运算。
■机械式计算机:
●1642年,法国数学家帕斯卡19岁时发明了人类有史以来第一台机械式计算机——帕斯卡加法器。帕斯卡加法器是由齿轮组成,以发条为动力,通过转动齿轮来实现加减运算,用连杆实现进位的计算装置。Pascal编程语言的命名就是为了纪念这位杰出的数学家。
●1674年德国的大数学家莱布尼茨在帕斯卡基础上,发明了可以连续重复计算加减法的步进计算器,这也是现代计算机做乘除法采用的办法,加减乘除四则运算一应俱全。据说是参考了中国的阴阳八卦二进制原理。步进计算器如图1-2所示。
●1822年英国数学家、发明家Charles Babbage(查尔斯·巴贝奇)发明第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数。后来巴贝奇又设计了更复杂的分析机,采用的一些计算机思想,如输入输出、数据存储等延用至今。他设计出来的输入输出、数据存储的概念机太超前了。由于当时制造工艺不够成熟,没有建造成功。但是,这种“自动计算机”的概念是一个跨时代的概念,预示现代计算机的诞生。差分机和分析机如图1-3、1-4所示。
图1-2 莱布尼茨步进计算器
图1-3查尔斯.巴贝奇 差分机 图
1-4查尔斯.巴贝奇 分析机
1.1.2 电子计算机■1906年,美国的德福雷斯特发明了电子管,为电子计算机的发明奠定了基础。其控制速度要比艾肯发明的继电器快成千上万倍。
■1924年,IBM—— 一个有划时代意义的公司成立了。
■1936年,美国青年霍德华·艾肯发明的马克1号机械/电动方式计算机在哈佛大学正式运行。继电器接通电路表示“1”,继电器断开则表示“0”。马克1号被称为最后一台“史前”计算机。
■1946年2月14日,“埃尼阿克”(ENIAC,译成中文是“电子数字积分计算机”)是世界上第一台通用计算机,第二台电子计算机。“埃尼阿克”诞生于美国宾夕法尼亚大学。但是在1973年,美国联邦地方法院注销了ENIAC的专利,并得出结论:ENIAC的发明者从阿塔纳索夫那里继承了电子数字计算机的主要构件思想。因此,1937年设计,1942年成功测试的“ABC”被认定为世界上第一台电子计算机。
■1939年,英国数学家图灵发明了图灵机。图灵被称为计算机科学之父,人工智能之父。人工智能的定义为:如果第三者无法分辨,是机器给出的答案,还是人类给出的答案,就可以认为机器具有智能。
1942年,图灵实现了第一个人机对抗的国际象棋程序。
1997 年5 月11 日,IBM 的国际象棋电脑“深蓝”在一次正式比赛中打败了世界冠军加里·卡斯帕罗夫。“深蓝”可以实现每秒两亿步的计算。当时, 这是国际象棋电脑能实现的最快计算速度。此后,人工智能便广为流传。
提示
我们会在下一阶段C语言的课程中编写一个人机对抗的扑克牌游戏。完成项目之后,就可以明白此类人工智能程序的实现方法了。
1.1.3 电子计算机发展的四个阶段■第一代电子管计算机(1946~1958)
特点: 操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。
■第二代晶体管计算机 (1958-1963)
特点: 晶体管代替了体积庞大电子管,使用磁芯存储器。体积小、速度快、功耗低、性能更稳定。还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。在这一时期出现了更高级的COBOL和FORTRAN等编程语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。
■第三代集成电路计算机 (1964-1971)
以中小规模集成电路,来构成计算机的主要功能部件。主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。
■第四代大规模集成电路计算机 (1971-至今)
从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机,重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。
发展阶段 | 逻辑元件 | 主存储器 | 运算速度(每秒) | 软件 | 应用 |
第一代(1946-1958) | 电子管 | 电子射线管 | 几千次到几万次 | 机器语言、汇编语言 | 军事研究、科学计算 |
第二代(1958-1964) | 晶体管 | 磁芯 | 几十万次 | 监控程序、高级语言 | 数据处理、事务处理 |
第三代(1964-1971) | 中小规模集成电路 | 半导体 | 几十万次到几百万次 | 操作系统、编辑系统、应用程序 | 有较大发展开始广泛应用 |
第四代(1971-今) | 大规模超大规模集成电路 | 集成度更高的半导体 | 上千万次到上亿次 | 操作系统完善、数据库系统、高级语言发展、应用程序发展 | 渗入社会各级领域 |
表1-1 电子计算机发展阶段
从表1-1中,我们可以清晰的看到,电子计算机的发展分为硬件和软件两个部分。随着计算机硬件的发展,更高性能的计算机不断快速的迭代更新。与之相应,计算机软件也在快速迭代,并且计算机应用已经渗入到我们整个人类社会的各个领域。
■未来计算机
基于集成电路的计算机短期内还不会退出历史舞台。一些新的计算机正在跃跃欲试地登上历史舞台。这些计算机有:超导计算机、纳米计算机、光学计算机、DNA计算机和量子计算机等。目前最寄予厚望的当属量子计算机了。有兴趣的读者可以查阅相关资料,此处不再赘述。
总结
计算机最初的功能就是用来进行算术逻辑运算。随着计算机性能的快速发展,以及计算机软件的发展,计算机应用的领域也越来越广泛。程序员这种职业也在这个过程中逐步壮大。
图1-5、1-6、1-7、1-8分别为第一代至第四代计算机。