小白都能玩的算法day4-算法依赖的数学模型

269 阅读2分钟

小白讲故事,每天都精彩。

今天小白给大家带来的是cup和内存的结构,帮助大家理解以后学习算法和分析性能这些。闲话少说直接放大招。

人脑大战CPU+内存

小白最近老是丢三落四的,上一瞬记得要做的事,过一会就忘了。是不是忘了喝六个核桃补补脑了。喷一口老血!

  1. 短期记忆可以类比成寄存器(暂时存储)
  2. 人的逻辑推理相当于算术逻辑单元(计算)
  3. 长期记忆等价于随机存储器(永久存储)

人脑PK内存+CUP

寄存器

一般不同的cup的寄存器个数是不同的。

寄存器

算术逻辑单元

一般算术逻辑单元可以从两个寄存器取出值计算,之后放回另一个寄存器中。从内存中取出两个数(5000*.2的计算过程)。

算术逻辑单元

随机存储器

随机存储器

随机存储器对应的就是我们的内存。从图上可以看出内存像大的数组一样的结构。然后内存的序数我们称之为内存地址。内存地址是有8位二进制组成也就是一个字节。

问:那为什么称之为随机呢?

答:因为访问每个地址的时间是相等的。

问:那么内存都是存些什么?怎么区分。

答:内存分为两类:数据存储地址和指令存储地址。

数据存储地址和指令存储地址

指令

指令组成是指令编码,寄存器A,内存地址1000。一一对应关系。

指令

CUP指令集

第一类是不操作内存的,只是简单的做一些计算。

第二类是与内存相关

第三类是就相当于我们平时if..else之类的指针。

CUP指令集

(补充一个小点:电脑启动过程:硬盘=>读取内存=>逐渐到CPU核心)

指令空间地址

指令空间地址

程序指针PC

一个特殊的寄存器,存储下一条要执行的程序所在的内存地址

指令周期

指令周期

总结

指令空间地址

首先将要执行的程序的内存地址放在pc指针里;

然后放入指令寄存器里执行;

其次读出结果放入寄存器中;

最后将计算结果放入内存中。

今日一题

写一个函数判断一个数字是不是某个整数的平方

is_square (-1) # => false
is_square   0 # => true
is_square   3 # => false
is_square   4 # => true
is_square  25 # => true
is_square  26 # => false