现在的位置: 首页 > 综合 > 正文

计算机理论最重要的两部分:信息与逻辑

2013年09月08日 ⁄ 综合 ⁄ 共 3232字 ⁄ 字号 评论关闭
文章目录

对计算机的误解

很多人认为计算机嘛,顾名思义主要是计算的机器,于是有一种错觉,既然是计算,那自然联想到小学初中学的数学加减乘除运算.困惑自然而然的产生,通过加减乘除这么简单的不能再简单的数学运算计算机能实现如此之复杂的功能? 真是活见鬼了啊.另外你写看下你写的代码中有多少代码是要求几个整数的加减乘除的啊?

实际上说计算机主要是计算这点确实是没错的,但是不是我们习惯思维所认为的普通数学中的那种加减乘.而是有另外更深刻的含义的.我后面会讨论到.计算之所以有如此强大的功能与如此广泛的应用.主要利益于计算机理论最重要的两个部分:信息和逻辑.下面我来简单的介绍下.

 

信息理论

 

我们知道电脑最强大的功能之一就是能储存海量的信息.一个个小小的硬盘可以把一个大大的图书馆里的全部书的内容都保存进去.各种文字,声音,图像信息都可以编码成二进制然后保存到电脑中.可以说就算电脑没有其它任何功能,光只有储存信息,然后能让我们检索信息,以适当的方式显示信息给我们看,那它也必然会在各行各业普及了.

实际上我们很多时候用电脑主要就用到它的信息处理功能.

比如你玩QQ,实际上就是信息的传递和显示,你通过键盘把你的想说的话存入计算机,于是它变成二进制.然后再通过网络传递到你的好友电脑上,再解码下就显示成文字了.你看电影,听音乐,是把视频与声音信息编码成二进制,存放于计算机中.然后你通过一个播放器,把它解码并显示成视频或声音让你欣赏.你浏览各种网站,上面有各种乱七八糟的内容,啥娱乐八卦,政治,新闻,体育等等.那也不外乎是一些信息保存在网站的服务器上,然后你通过浏览器浏览时,二进制数据先是通过网络(也就是通过一根网线呗)传到你电脑上,浏览器再把信息解码显示给你看.我们用的Oracle,
SQL Server, MongoDB等一些数据库更是直接和信息打交道了.

数据就是信息的载体啊.我们编程时用到的int ,long ,float, char,string这样的简单的数据类型之所以能实现这么强大的功能就是因为它们不仅仅是枯燥的数据,而是因为他们能代表一些信息,能储存信息,处理信息,传递信息.

而电脑存储信息的理论基础就是信息论了,对信息论做出突出贡献的代表人物就是香农(shannon).可以说在计算机界,他的地位可以与大名鼎鼎的图灵相媲美.信息论涉及到很多非常复杂理论和看得让人晕乎的术语.不过反正它的主要作用就是研究把世间万物中蕴含的信息编码成数字或符号,然后怎么传递这些数据,怎么保证数据传递的准确性,安全性等等一些问题.

信息编码

另外我们知道信息可以表示成任何数字或字母等符号.实际上我们使用的汉语,英语等日常语言也可以看成是把现实中的很多信息编码成字符.不过在计算机中主要是把信息编码成二进制数字.而恰好通过计算机的物理元件,晶体管,门电路这些玩艺可以非常美妙的表示二进制.一个晶体管开关的开与关就可以表示成1和0.而只要有了01这两数字.计算机就足以用来编码表示任何信息了.所看起来简单的不能再简单的事物可以组合出复杂的吓人的事物来.我们人身上的DNA就是一些简单的碱基对,这和二进制也蛮类似.

二进制的威力如此之大,那发明二进制的人自然绝对是位牛人,伟人啊.一般普遍认为是德国的莱布尼兹发明了二进制的,不过有很多中国人认为我们古代的太极八卦图里面就蕴含二进制的思想,莱布尼兹也是因此受到启发而发明二进制.至于具体情况咋样没人知道啊.

刚说到是二进制是被发明.实际上关于数字原理与规则到底是大自然中本身就存在,我们人类只是发现这些原理,而是本来不存在而是我们创造出各种数学原理的.这是一直有争论的.作为有宗教信仰的科学家来说毫无疑问,数学原理是被发现的,本来就有的.甚至有人认为,上帝就是一个数学家,上帝运用各种数学原理创建出这个世界.所以数学也能神奇的运用到各行各业中.而无神论的科学家可能更倾向于认为数学原理是被发明的,自然界中本来不存在的.

 

 

逻辑运算

 

上面我们讲到计算机有个非常强大的功能就是储存少量数据.但数据本身是死的,如果我们要对它做很多操作,比如检索下,分类啊,制定一些规则应用于数据上啊.像数据库访问嘛我们得要用户名密码才能登,QQ也一样.网上使用百度,google这样的搜索引擎找东西时输入关键字时返回相应的信息.你拿个鼠标在电脑上点来点去,操作系统和各种应用程序会产生相应的操作和反应.所有这一切是怎么实现的呢? 0101那些死的二进制数据可真是一些死家伙,可不能实现这么强大的功能啊.

这就是计算机的逻辑处理能力发挥的强大功能.那逻辑又是个啥东东啊,而且计算机本身只识别01这样的数据.它怎么实现逻辑功能的啊?

这就要把数学和逻辑是怎么结合到一起的.逻辑是啥的,举些简单的例子,比如我是对的,你是错的. 因为你长的矮挫穷,而女的喜欢高帅富,所以你这会还在打着光棍. 里面出现的对与错,因为,所以这些词就是表示的一种逻辑概念.像狄仁杰,包黑炭,福尔摩斯这几位老兄查案进做的推理也都是逻辑推理.一般都是因为啥啥啥,所以啥啥的,最后就认为你是凶手.

那我们知道计算机只识别数字,也就是说计算机中只能用到数学知识.所以要实现逻辑就必须把数学与逻辑两个不同的学科结合起来.

题外话,数学历史简介

先来说点题外话,看数学是怎么发展的.数学可以简单的划分为几何和代数两大块.

在古希腊的时候几何是非常发达的,欧几里得的<几何原本>在今天仍然是被奉为经典.而且在某个范围上来说是完全正确的.毕达哥拉斯虽然对数有研究,并且说啥万物皆数,但他眼中的数也主要是来为几何服务的.他最具代表的理论也是几何中的理论,就是直角三角形边的关系.只有到了近代数学才慢慢受到重视.以迪卡尔为起点,他首先提出了把代数与几何结合起来,形成了著名的解析几何,于是大家对代数重视起来了.在很多数学家的进一步发展下,代数变得完全可以与几何媲美,甚至超越几何的势头.

另外传统的欧几里得几何也因非欧几何的出现而受到一定的冲击,以前大家都理所当然的认为,通过一点只有且仅有另外一条直线的唯一一条平行边.三角形三内角各永远是180度啊.这都被认为放之四海皆准的真理.但非欧几何否定了这个观点.假如空间的是曲面的,比如空间是像一个球面,这样三角形三内角和不一定是180度,过一个点也未必存在过一点的另外一直线的平等线.主要这里说的是空间是曲面的.跟我们说的地球是曲面的完全不是一个概念.我们直观经验没法想象到空间曲面.爱因斯坦的相对论就是基于非欧几何的,爱因斯坦认为引力的作用会导致空间坍塌,空间就变成弯曲的了.此时两点之间也不是直线最短了.

当数学在各行各业,特别是物理学中取得巨大的成功时,人们认为数学是不是可以应用到任何地方.比如说人类思维的研究中 ? 于是尝试把数学与逻辑结合起来.而其中最有出名的代表任何时布尔,他创立的布尔代数.看起来简单的不能再简单的.就是二进制01的加减乘除运算运算,1+0 = 1; 1*1 = 1; 1*0=0; 说到这就可以咽到开头我讨论的一个话题了,我们认为计算机做计算是普通数学中的加减乘除,实际上计算机的计算是01这样的二进制的加减乘除.那有啥不一样呢
? 因为二进制的算术运算还有逻辑的含义在里面,1可以代表真,0代表假. 于是各种真假的组合及运算可以用来完成所有的逻辑推理.

冯.诺伊曼在研究电脑与人脑的联系时,就认为大脑能实现一些逻辑功能与人脑构造具有二进制机制的神经元有关.比如我们处理各种信息都要通过神经元传递.当一个神经冲动传递到另外一个时,就会通过判断强弱来决定是继续传递还是忽略掉,只有二选一的抉择.这跟计算机硬件功能一样,晶体管关闭电流通过,打开电流不能通过.这跟神经冲动传递一样.

 

 

有了信息论与逻辑处理这两机制计算机就能发挥巨大功能了啊.我们写的代码中绝大部分也就是跟这两者有关.各种数据类型自然是用来保存信息,然后各种if , else ,while, && ,||之类的的逻辑判断与操作自然就跟逻辑处理有关.

 

抱歉!评论已关闭.