第二周学习总结
作者:互联网
|2020-2021-1信息安全专业导论|https://edu.cnblogs.com/campus/besti/2020-2021-1fois
作业目标:1.自学教材《计算机科学概论》第一章、第十八章;2.《看漫画学python》第一章 3. 完成云班课第二周测试题 4.学习Linux基础课程
教材内容学习总结
一.关于《计算机科学概论》:学习了计算机历史,硬件的组成和一些专有名词。通过第十八章学习了不同算法的比较,还有一些检查错误的方法,还有bug的由来。
二.《看漫画学python》:学习了python的发展历史,安装了python,尝试了hello world
教材学习中的问题和解决过程
问题1:学习过程中很多英文看不懂,难以理解题目中想要表达的意思。
解决:通过翻译软件翻译
问题2:停机问题为什么不能解决:
解决:任给一段程序,尝试判断它开始运行之后是否能安全结束,这个问题就是停机问题。停机问题是否可解,也就是说是否存在一个图灵机,能判断一个程序是否最终能结束。
为了方便下文叙述,我们先给出一个图灵计算的谓词: 表示图灵机 使用 作为输入,是否最终能获得一个计算 。这里的 并不是单纯指计算的最终结果,而是整段程序的单步执行过程的集合。《Computability and Unsolvability》一书花了好几页冗长但并不算很复杂的篇幅,证明了这个 是原始递归(primitive recursive)的。证明的全过程就是把图灵机的每个计算方式(左移、右移、读、写)拆出来分析,并且指出它们都是原始递归的,所以组合之后还是原始递归的。
原始递归指的是一个函数可以通过函数组合(例如 ),或者简单递推(例如 只能由 计算得到)分解成四种简单计算: (从一个tuple中选择 ), (查看 是否在集合 内), , 得到。例如, 就是一个原始递归的函数。简单地说,原始递归就比较容易计算的一类函数。
可是 是原始递归的不代表停机问题就可解了。这个好理解,给了一段程序和它的输入,我们可以一步一步单步执行,一点一点检查 和执行的中间过程是否符合。但是这不意味着我们能知道一个图灵机最后是否能结束。
停机问题的形式化描述是一个谓词 ,即枚举 来查看图灵机是否能结束。我们现在要看这个谓词是不是可解的。
一个谓词 如果是可解的话(即有一个图灵机能计算这个谓词),那么 和 都是半可解(semicomputable)的。半可解的谓词指这个谓词 恰好能判断 是否使得一个图灵机停机,通俗地说, 标注了一个图灵机 的定义域。
如果停机问题可解的话,那么我们可以举出一个实例: 也是可解的。既然 是可解的,那么 就是半可解的喽,那这个取反就标定了一个图灵机 的定义域。因此, 。如果把 带进去,我们就发现了一个悖论。那么把 这个图灵机输入它自己的代码本身就是不能判断是否停机的,我们也就发现一个的确不可解的case。
想来,如果停机问题可解的话并且能构造一个解法的话。我们就可以把哥德巴赫猜想或者其他各种大佬们证明不了的东西扔进去并构造一个解法。这样的话,这个世界应该早就大同了吧
-来自知乎
其他
还要继续努力。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0 | 2/2 | 15/15 | 开始学Linux |
第二周 | 0 | 2/4 | 20/35 | 开始学python |
标签:总结,停机问题,递归,python,可解,学习,第二周,图灵机,谓词 来源: https://www.cnblogs.com/gfynb/p/15364029.html