[程序员的数学]notes——chapter 8

阅读更多

第8章 不可解问题——不可解的数、无法编写的程序

 

反证法(归谬法):假设“命题的否定形式”成立 -> 根据假设进行论证,推导出矛盾的结果。

思考题:为什么不存在“最大的整数”、质数是无穷的

 

可数(countable):集合的元素是有限的,或者集合中的所有元素都与正整数一一对应。

元素可按一定规律既无“遗漏”也无“重复”地数出来。

可数集合的例子:

有限集合是可数的;

0以上的所有偶数的集合是可数的;

所有整数的集合是可数的;

所有有理数(整数/1以上的整数)的集合是可数的;

程序的集合是可数的。

 

存在不可数集合,不可数集合是元素不能与1以上的整数一一对应的集合。

 

对角论证法(康托尔 提出)

所有整数数列(无穷个整数的排列)的集合是不可数的;

所有实数的集合是不可数的;

所有函数的集合也是不可数的。

 

不可解问题:原则上不能用程序来解决的问题。

 

停机问题(Halting Problem):判断“某程序在给定数据下,是否会在有限时间内结束运行”的问题。

判断程序是否停机的HaltChecker,绝对是任何人都无法写出来的。

图灵(Alan Turing 1912-1954)在1936年证明了停机问题。

 

费马大定理(Fermat's last theorem)

当整数n>2时,关于x,y,z的不定方程 x的n次方+y的n次方=z的n次方 无正整数解。

 

哥德巴赫猜想:任一大于3的偶数都可写成2个质数之和。

 

 

 

 

 

 

你可能感兴趣的:(不可解问题)