一、图灵机
什么是图灵机:
- 假设有一张很长的格子纸条,每个格子可以记录一个字符
- 有一个笔头可以左右移动,可以写入或擦去
- 有一个控制器可以保持或转换状态
例子:
判定{ambm|m>=0}:左右分别是a和b且数量相同,如aaabbb。
思路:笔头来回移动将a和b一一对消,若最后都为空白则接受,否则拒绝。
可以使用visual Turing 实现
二、算法
基于有穷观点的能行方法
计算问题:
- what:分类问题——树状图
- why:证明问题——从公理出发
- how:过程问题——算法流程图
突破计算极限
- 利用空闲计算力——机海战术
- 利用空闲智力——人海战术
三、抽象与实现
如何抽象?
- 让底层开发程序员专注于实现和优化数据处理,不改变数据的使用接口。
- 用户专注于用数据接口解决实际问题,无需考虑如何具体实现这些接口。
通过层层抽象,降低问题解决过程的复杂性。
每个层次专注于自己层次的实现,其他问题可以往后推,甚至交由其他团队解决。