引言
1.概念
首先提出一个概念:编码和计算
编码:是人类对于各个物体和各个状态的描述,顾名思义,人类编的一个识别各种物体和各个状态识别码
计算:是人类对物体和状态变化过程的描述
2.具体实例
那么,什么是编码和计算呢,生活中有没有具体的实例呢?
首先,世上的一切,我们人类认识的表示都是编码和计算的集合。
其中最为典型的,人类的语言就是一种编码和计算的集合
人类运用编码来表示世界,故而桌子和table才表示了桌子这个物品,而具体的编码就是一连串的符号,是人类赋予了它们的含义。
通常人类存在精确的描述和广泛的描述
比如,你的名字就是一种广泛的描述(可能会有重名现象的发生)
而精准的描述,比如加上一连串的定语来进行描述(比如长得帅的那个张三等,可以一定程度的避免描述的广泛性),但是最精准定位到某个东西上就得使用唯一的标识来标识某个物体。如:身份证、经度纬度等。(故状态事物和编码是一一对应的)
人类运用计算来表示世界的变化,
从结绳记事,比如古人记录自己捡了多少果子,就在绳子上打上一个结,这反映了单方面的一个状态,即有多少个果子
随着社会的发展,有了经济业务的发生(人类开始交换物品),显然单方面状态不足以更好的表示这笔经济业务的状态的改变,于是有了算盘和方程,
例:A+1=B 挪过去就是 A=B-1 也即是,在A和B组成的系统中,总量不变,一个果子从B挪到A那么B就减少一个,A增加一个
所以有了编码和计算(更偏向一种逻辑运算),人类就能将世界描述和表示的很清楚
比如:中文
则:中文汉字是一种符号表示编码,而语法(中文语序的组合规则)就是一种计算(逻辑运算,将符号通过一定的逻辑关系串在一起)
那么编码和计算的目的是为了什么呢?我们表示这个世界上的一切和其变化,都是为了保留和传播信息。
当人类的祖先发现可以利用声带的震动就能传播信息时,他们就定义了一套读音编码和拼读的规则,哪个读音表示哪个物体,哪几个音如何组织表达这个意思。
当人类发现石头上可以刻字以后,就定义了一套符号编码和语法,在某个记录的介质上表达他们的意思。
人类的进化史就是一个很好的表现了编程思维的例子;总结下来即为以下过程:
1.发现现实生活中能够应用到他们想要解决的问题的东西(以上的声带振动能发声传播和石头上刻字能传播) |
2.对相关事物进行编码(包括符号编码(石头上图形)发音编码(声波状态的转换)) |
3.实现逻辑(有的是人类自己规定的规则,有的是存在的规律抽象后的规则) |
而这些编程思维也可以很好的应用到生活中,比如编程中常用的另外一个思维————分层思想
3.分层思想
分层思想就是将一个复杂的大问题分成几层(几步),每一层只解决这一层的问题。下一层为上一层提供服务。
比如:上例中的人类想解决交流的问题。运用分层结构如下:
1.交流问题 假如能传播和记录,如何使得两个人能够交流顺畅和看懂呢? 定义相同的规则和符号,如果规则(语法)符号(文字)不一样,那么就找一个翻译
2.怎么定义符号和规则使得能传播出去呢? 利用现有的技术手段传播 现在能石头上刻字,那就定义符号编码,能发声,那就定义声音编码
3.传播技术的实现问题? 将石头保存下来,面对面的交谈
基于以上的思维,我们可以总结出:
1.明确要实现的大问题。(和可能能够使用的技术)
2.将大问题分层,每一层假设下层已经实现(串联中间层)
3.有编码和规则直接用,没有的话创造
则计算机的实现也能运用分层结构来简化实现
1.实现简化人类计算问题 。 (发现电以及灯泡,电这种介质传播很快,可以通过灯泡显示计算结果,比单纯的人在石头上刻快很多)
…
…
n.通过电运算,运算结果怎么显示? (电灯的个数显示运算结果。有电则亮,没电则不亮)
中间分层实现n层到1层的连接,每一层解决对应的技术问题。
n-1层如下:
假设已经有电和灯泡,解决了结果的显示问题,那么如何才能表示我们平时运算的数字和运算逻辑呢?
运算逻辑使用门电路的组合解决即可(串并联和传感器)运算数字我们平时用的十进制,符号为0~9,如果精准定位每一个符号,需要十种不同的状态,而且运算结果也需要十种状态来对应显示,而灯泡只有亮和不亮两种状态,那么如何解决呢? 采用二进制,二进制每位上只有0和1两个符号,只需两种状态来代表即可。
n-2层如下:
运算正数解决了,负数如何表示以及如何使用运算逻辑?
将最前一位定义为符号位,则一半为正,一半为负,引入数学中的模的概念
。。。。
结语:
总结以上,我们在思考问题时,首先应该将大问题分层
1.大问题(和可能解决大问题的已经技术上攻克的工具手段)
。。。。(中间层,为最底层和上层一层层服务的接口,一系列逻辑(实现规则)和编码(定义状态和事物))
n.已有的技术手段(必须经过的环节,最后流向的地方)
中间层的逻辑应该由1和n层以及存在的条件推理得出
我们平时应该抽象出一些逻辑(封装)
比如:如何得到大学毕业生?(计算要素)
高中考上大学的毕业生(学费,四年时间)
{
学习;
实践;
};
举个例子:数学上的级数求和
1.级数求和。(猜想:应用已有的具体的某个泰勒公式得到结果)
。。。
n.找到合适的泰勒公式,求出结果。
再举个栗子:找一个好男朋友
1.找一个好男朋友(猜想:从身边好朋友的男朋友观察)
。。。(中间过程,要找一个好男朋友,那么需要对身边的人的男朋友的优点进行分类,有这些优点的就是好男朋友)
n.找到合适的男朋友
正如找男票的逻辑,级数求和本质上就是找合适的泰勒公式,我们只需要将泰勒根据特点分好类,就可以根据特点唯一定位到某个泰勒公式求出结果了。(而找泰勒公式的这个过程中有很多困难,但是只有泰勒公式和定积分这两种求和的方法,最后都要到已有的实现手段上来)