未来简史(人类简史的作者):人类文明进入数据主义时代。
人们应该将生命活动理解为数据流的传输及处理算法,人类智慧和自由意识也无法例外。
电影:超时空接触
SETI@home:1999年开始,地外文明搜索一直在进行,有个众包的分布式平台利用多余的算力来地外探索,已进行了20多年。
但是科学不是万能的,数学也不例外。
伽利略(1564-1642):mathmatics is the alphabet in which god written the universe.
Donald in mathmagic land. 1959 数学应用的动画片
希尔伯特:能否找到一种基于有穷的能行方法,判断任何一个命题的真假
关于“计算”的数学模型
研究证明:希尔伯特提出的计划无法实现。但 能行可计算概念成了计算理论的基础,相当于是希尔伯特抽象出的计算的概念。
计算机是数学家一次失败思考的产物。---无名氏
计算复杂度:问本身的特性
世界上最早的算法:辗转相除法,公元前3世纪,《几何原本》
1844年,数学家加百利,证明辗转相除法步骤不超过较小的数的5倍。
相当于开创了计算复杂性的理论。
计算复杂性:通过研究发现问题的难易程度是不同的。
同一个问题不同的解决方案,复杂性也会差别很大。而且运行环境不同,编程语言不同,硬件设备不同(服务器,移动端?)都会影响结果。
抽象:以汽车为例,汽车可以为反向盘,油门,刹车,档位等(接口),逻辑层次。
实现:如方向盘功能(接口)的内部结构,如油门的标定、喷油量等,物理层次。
抽象:功能级别,如司机看到的是上车,点火,换挡,刹车等,比物理层次更高
如c语言中分为逻辑行和物理行,一个逻辑行可能包含多个物理行。
抽象:从物理层次--->逻辑层次,从实现---->接口(interface). 物理层次对应实现,逻辑层次对应接口。
抽象发生在不同的层次上:如封装后的只有API接口的函数调用形式---过程抽象
算法 + 数据结构 = 程序,图灵奖的获得者,pascal语言设计者---Niklaus wirth
因此程序语言需要提供“过程”和“数据”的机制:
抽象数据类型(ADT):实现了对数据的封装encapsulation
用户user--->接口interface--->实现implement--->操作operation
ADT:
抽象的好,接口使用维护方便,即使内部实现变了,不影响user的使用。
原文:https://www.cnblogs.com/Henry-ZHAO/p/13251893.html