输入/输入

现代计算机都采用存储程序结构,又称为冯·诺依曼结构,所有对计算机的操作,都可以简化为如下模型:

image

现代计算机组成的五大部分

  • 控制器
  • 运算器
  • 存储器
  • 输入/输出设备

冯·诺依曼结构主要特点有:

  • 以运算单元为中心;
    输入/输出设备与存储器之间的数据传送都途经运算器。运算器、存储器、输入设备们之间的联系都由控制器集中控制;

  • 指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现(程序需要根据特定的条件来改变执行的顺序,这时就需要使用分支机制);

  • 存储器是字长固定的、顺序线性编址的一维结构;
    存储器提供可按地址访问的一级地址空间,每个地址是唯一定义的;

  • 数据以二进制编码;
    指令和数据均采用二进制格式;

  • 由指令形式的低级机器语言驱动;

模型分层

计算机和网络等都采用分层设计的,如下图:

备注
应用层、云计算 软件
库、接口、服务 软件
编程语言 软件
操作系统 软件
指令集体系架构 软件
逻辑门 硬件
电路 硬件
半导体 硬件
电流 硬件

层的一些通用法则

  • 依赖性
    计算机的工程模型是深度层叠的,并且每一层的设计都会影响上、下相邻的两层;

  • 独立性

    1. 每一层都独立处理其特定的任务或功能。层与层之间的设计和实现细节可以独立进行;
    2. 模型分层让设计者能够摆脱现实物理的约束;
  • 传递性

    1. 不同的层次之间有不同的沟通方式,这个约定好的沟通方式叫作协议,并且不能越层沟通;
    2. 可以没有上层只有下层,但一定不能只有上层而没有下层;

这些法则不仅适用于计算机体系,在计算机网络、操作系统、软件开发和硬件设计中也广泛应用。


算法和程序

算法和程序都属于应用层。

算法定义:
算法是对解决方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。 也就是说,算法对于具有一定规范的输入,能够在有限的时间内给出所要求的输出。

  • 程序 = 由计算机系统执行的一系列指令或代码集合 + 数据;
  • 算法其实就是设计者针对问题场景所设计的一些最佳策略;
  • 某场景的应用 = 针对该场景的算法 + 数据;

算法在古代就已经存在。算法的雏形是规律,例如古人在治理洪水的过程中发现了勾股术,并且使用勾股术成功测量了两地的地势差。除此之外,还有很多例子证明了算法从古至今都存在。

如今,算法不再局限于数学领域的应用,而是升级为解决多领域复杂问题、提供多行业应用方案的有力助手,成为人工智能时代的关键要素。

算法无论在政务领域还是在商业领域都有着极大的应用,可以应用到智慧政务、公安防诈、无人驾驶、内容推荐、人脸识别、货品陈列等多个行业领域。


算法的其它要求

一个好的算法设计,除了需要解决问题之外,通常还要尽力达到“双低”:

  • 一是计算工作量小,速度越快越好;
  • 二是所需内存空间小,占地越小越好。

总结:
算法就是一个问题的解决方案,解决问题的形式是:通过输入和输出结构。尽量还需要双底。


一个算法能运行的条件

需要满足有三要素:

  • 算量(数据)
  • 算法
  • 算力

如果比作一个厨房做菜,数据就是材料,算力就是一个厨房的设备、水、火、锅具,算法就是做菜的流程。


算法的研发过程

解决具体问题的过程,这个过程就类似于求解数学中的应用题,要尝试运用各种理论和公式得到最优解。

流程:

  • 分析业务问题、
  • 收集梳理数据、
  • 特征提取、
  • 建模、
  • 设计算法方案等

宏观视角看待算法

从宏观来看待,算法就是一个函数,有输入、内部运算、输出 三部分。
image

输入:
输入就是将现实参数转为可以由计算机处理的二进制数。

内部运算:
内部运算则是以现实目标作为求解的目标,这个步骤需要程序员用自己的经验去挑选出一个合适的计算方法(计算步骤)来完成这个计算过程。
计算机比手动算的优势在于,计算机可以大量的循环(重复计算,这个是人脑难以做到的),当然还有大量的存储。

输出:
输出就是将运算的结果输出。

posted on 2025-01-09 17:42  Mysticbinary  阅读(355)  评论(0)    收藏  举报