引言

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.找到合适的男朋友

正如找男票的逻辑,级数求和本质上就是找合适的泰勒公式,我们只需要将泰勒根据特点分好类,就可以根据特点唯一定位到某个泰勒公式求出结果了。(而找泰勒公式的这个过程中有很多困难,但是只有泰勒公式和定积分这两种求和的方法,最后都要到已有的实现手段上来)

编程的思想和计算机的逻辑来历相关推荐

  1. 【编程思想】计算机领域的所有问题都可以通过增加一个间接的中间层来解决

    文章目录 计算机领域的所有问题都可以通过增加一个间接的中间层来解决 一.间接中间层可以解决计算机领域的问题 二.操作系统如何通过间接中间层解决计算机问题 三 结论 七层网络协议中体现的分层思想 概述 ...

  2. JavaBean编程基本思想-逻辑业务层

    JavaBean是一个Java类,用来实现业务逻辑层.     什么意思?我长话短说:我们知道JSP编程是把Java代码写入html文件中,而JavaBean编程就是把Java代码写在另外一个JAVA ...

  3. 知识库递归编程java和prolog代码;逻辑语言Prolog简介(附24555字PDF发“递归prolog简介”下载)

    知识库递归编程java和prolog代码:逻辑语言Prolog简介(附24555字PDF发"递归prolog简介"下载) 数据简化DataSimp 今天 数据简化DataSimp导 ...

  4. 在计算机安全系统中,探究免疫思想在计算机安全系统中的应用

    摘要:随着时代的发展,计算机已经广泛进入了人们日常的生产生活之中,人们对于计算机系统安全的重视程度也越来越高.在此基础上,本文对免疫思想在计算机安全系统中的应用进行讨论,从其应用的意义展开,提出了具体 ...

  5. 计算机编程英语怎么写,计算机编程英语词汇大全.pdf

    计算机编程英语词汇大全 计算机编程英语词汇大全 算法常用术语中英对照 DataStructures基本数据结构 Dictionaries字典 PriorityQueues堆 GraphDataStru ...

  6. 计算机五大逻辑部件数据流,211计算机基础知识综合篇.ppt

    211计算机基础知识综合篇 无忧PPT整理发布 无忧PPT整理发布 无忧PPT整理发布 考纲要求 计算机硬件系统 冯·诺依曼体系及五大逻辑部件---2 计算机硬件的基本配置---3 计算机软件系统 软 ...

  7. 学计算机编程应该先学什么,计算机编程好学吗?计算机编程入门应该先学什么?...

    原标题:计算机编程好学吗?计算机编程入门应该先学什么? 计算机编程好学吗?想要进入编程行业,入门最为关键,经常能听到很多人说,想学习编程不难,入门更为简单,只要你对他感兴趣就能学,但是至于学的怎么样, ...

  8. OOP 概念的编程基础思想----我的感想

    OOP 概念的编程基础思想----我的感想 (The essential of OOP concept Thought) Actually the philosofy of object orient ...

  9. 计算机编程常用英语6,计算机编程常用英语.(DOC)

    计算机编程常用英语.(DOC),计算机编程常用英语,计算机编程英语,计算机编程用英语怎么说,计算机编程中常用的术语,计算机编程英语词汇,计算机编程常用单词,市场上常用的计算机编程软件,计算机编程英语简 ...

  10. 假设有一个双字X=12345678H,编程完成将此双字逻辑左移4位,并将移位后的双字存到双字变量Y中。

    题目 假设有一个双字X=12345678H,编程完成将此双字逻辑左移4位,并将移位后的双字存到双字变量Y中. 实验目的 熟练8086指令集: 熟练掌握汇编语言三种基本结构编程及上机过程: 熟练使用调试 ...

最新文章

  1. uva 707(记忆化搜索)
  2. 芯片焊接和PCB设计引脚的长度及位置对于焊接质量的教训
  3. .NET智能客户端(SmartClient)
  4. C#中一行代码实现18位数字时间戳转换为DateTime
  5. Netty实战 IM即时通讯系统(九)实现客户端登录
  6. Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory
  7. There is no tracking information for the current branch
  8. Microsoft Graph Toolkit 初探
  9. leetcode - 155. 最小栈
  10. “深入浅出”是什么导致不能以操作系统用户身份连接到数据库
  11. 逻辑或( || )和逻辑与( )的关系
  12. MAC系统/虚拟机中的chm打不开
  13. oracle打cve补丁,Oracle多个产品高危漏洞补丁安全预警
  14. 6. ROS编程入门--路径跟随(Trajectory following)
  15. 高分一号(GF-1)影像数据下载方法
  16. 修改MDK5(keil5)工程文件名称
  17. 复合型网络拓扑结构图_网络拓扑结构大全和图片(星型、总线型、环型、树型、分布式、网状拓扑结构)....
  18. 脑洞故事|万圣节的起源并非恶魔,而是M星系机器人!
  19. 洛谷:P1462 通往奥格瑞玛的道路
  20. 2017-我的秋招之路:机器学习/算法工程师(含大量面经)

热门文章

  1. 新型复购模式“循环购”如何在市场中脱颖而出
  2. 计算机怎么使用远程桌面工具,远程桌面工具,教您如何使用远程桌面工具mstsc连接远程桌面...
  3. 低功耗设计-ir drop的signoff corner怎么选择?
  4. 编写一个类Counter类,它表示一个检录计算器,用于统计进入房间的人数。这个类需包含一个表示计数值的整型实例变量。
  5. android 4.4.2 sd卡,Android4.4上读写外置SD卡出错
  6. 朋友圈截图生成,制作朋友圈网页
  7. C#和WPF入门教程
  8. javaSE-第174篇-游泳池只接受会游泳的动物
  9. 《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载
  10. Java 多线程实现多窗口售票