跳到正文
网络寻租
返回

一天弄懂计算机科学之体篇

首先就是计算机科学到底是什么?这个领域主要做的是什么事情? 计算机科学并不是关于如何让你熟悉理解操作计算机的, 计算机科学考虑的是:如何理解信息,记录信息,以及处理信息。

如何理解信息

信息是什么?信息是可能性的反面:确定性。 一件事情有可能发生,然后告诉你实际发生了,这就是信息。 比如我们知道明天有可能下雨,然后有一个神仙告诉你明天实际会不会下雨,这就是信息。

信息与信息之间是有度的区别的,告诉你明天是否下雨,以及一个人生日的信息量是不同的。 那么如何衡量信息的大小呢?可以用概率来看。概率越低,信息量越大。 比如明天是否下雨的概率是1/2,一个人生日的概率是1/365。

我们定义信息量:2^信息量=1/概率,下雨的信息量是1,生日的信息量是8.5左右。

如何记录信息

知道信息是什么了之后,我们可以考虑如何记录信息。 比如我们需要存储一个字符串,一个字符的信息量就是所有可能的字符, 比如简单的ASCII编码,有255种均等可能的字符,信息量就是8。 我们可以以1-255之间的数字定义一个字符,比如A就是65。

然后我们去寻找可以存储信息的介质。 任何有状态的介质都可以存储信息,比如算盘,小石子放在格子里面之类。 我们可以根据状态的数量来判断一个介质能够存储多少信息量, 比如算盘一个5串的格子,有6种状态,可以存储的信息量就是2.5。 然后可以把字符串编码到这个介质上面,一个字符需要4个格子提供足够的信息量。

因为格子的信息量足够,我们可以有很多种方法把字符映射到算盘上面。 但是我们需要一种通用的方式来做这样的事情,这样我们可以很容易切换到其他介质上面去。 最好的方法是提供一种中间编码形式,字符编码转换成这个编码,然后这个编码转换到介质上。 我们用的是二进制,用这种0100这种方式表示。 因为一个字符只有两种状态,方便编码转换。

我们来看如何把一个字符转换到算盘上面。 A=65=01000001,二进制编码到算盘也很简单, 算盘的一格可以对应二进制的两位,算盘拨动1-4格4种状况就可以了。 当然有更省存储空间的算法,我们会在后续介绍。

我们可以寻找更便宜的存储介质, 现在用的是磁性介质(硬盘),二极管(内存,闪盘等), 一个1T磁盘可以存储1024^4个字符,每个字符占用二进制的8位,一个磁盘就可以存储8T多的信息量。

如何处理信息

我们来到了最有趣的部分:如何处理信息。

我们需要理解处理信息的本质,然后再思考,如何创造一个机器来实现信息的处理。

比如我们需要把一张自拍照美化,其中的一个步骤就是把图片变白。 用信息化的处理方式,就是把每个点按照RGB的方式编码, RGB代表三原色,每个原色用0-255表示亮度,000就是黑色,255-255-255就是白色。 我们把每个原色的权重加一个百分比,比如原先100就变成150,这样就实现了照片的美化处理。

也有一些简单的方法,比如打印照片,打光,重新拍一张,或者专门做一个处理照片的机器。 但是为什么要实现一台通用的处理信息的机器,来处理这个任务?

因为几个原因:

而创造这样的通用计算机器是可以做到的,方法是把所有信息处理的动作分解,一直到可以通用的动作,然后再通过机器实现就可以了。

其中的一种通用的计算机模型如下:

比如上面的照片处理,可以用这个机器实现。机器的指令也保存在存储介质里面,具体如下:

指令列表:

这些指令实际上的操作就是:转移数据,对数据进行运算,同时机器下一步执行的指令位置也是可以通过数据来操作的。 我们可以通过逻辑证明,带有这样功能的机器,可以把存储介质的状态,设置成任意我们想要的状态,从而证明这是一台可以进行通用信息处理的机器。

我们可以用各种方式来实现这样的通用计算机器, 比如机械齿轮,水力,算盘,甚至人工,但是最后我们会选择性能最好,价格最便宜的方案,现在就是用二极管,集成电路, 每秒可以进行几十亿次的运算。

以上内容就是信息科学的部分,我们知道信息的本质是什么,以及信息本身是以什么方式存在,然后是如何处理信息, 之后我们可以利用这些原理,创造出来计算机,以及配套的支持环境,来实现所有的信息存储,操作和处理。


分享这篇文章:

上一篇
一天弄懂计算机科学
下一篇
现代社会防骗指南

评论

评论通过 GitHub 账号发布,需要先使用 GitHub 登录。