以下内容主要来自。。Wikipedia。
由于某些原因,最近学了下数归,感觉还是很好理解及很强大的,这里做个学习笔记。
首先引入一个引理,及皮亚诺公理,其定义了N,声明了数归的正确性并确保了其严谨性。
皮亚诺 公理:
①对于三元组(x,X,f),x为一元素,X为一无限集,f为X到自身的映射。
②存在唯一的x∈X,且x不在f的值域内。
③f是单射。
④一个不严谨的表述是:若集合A可以用与上述三条陈述相反的方法构造,且A的首元素∈X,则A包含于X。(这实际上等价于数归的基本原理)
对于第四条性质,实际上还有很多种更为严谨的表述,这里就不在赘述了。
这里我们发现自然数实际上是被递归定义的,于是我们发现了数归在其他类似结构中的正确性,比如树。
数归的基本思想:
对于一个可以被上述方法递归构造的集合A,证明x∈A成立,证明对于任意a∈A,由p(a)可推出p(f(a)),则可得命题在A内正确。
这显然是一个递归证明的思想,与DP是有很大相似处的,只不过用途不同、功能不同罢了。
一个简单的模型是:
①证明P(1)成立。
②证明对于任意x∈N,由p(x)可推出p(f(x)).
几个变体:
1、改变首元。(如从5开始等)
2、(扩展首元) 缩放 普遍性:
即p(x)在包含于A的B的正确性易证,而在C(A,B)中的元素虽难证却较少,便可以用列举的方式讲x∈C(A,B)作为A的首元处理。
3、 (缩放函数关系的普遍性)奇怪的f:
关于这玩意儿最牛的应用莫过于证明Fibonacci数列的通项公式了,即先证明p(0),p(1)成立,然后证明p(x)∩p(x+1)->p(f(x,x+1)=f(x)+f(x+1)).
这玩意儿由于代表了数归的某种高度的应用。。所以被称为完整归纳法。
4、逆向思维:递降归纳法。
我们发现皮亚诺公理中的f是个单射,这就意味着对于N的子集我们可以将其逆向处理;
即改为:证明p(a),证明对于任意x∈A,p(x)->p(x-1),命题得证。
由于某些原因,最近学了下数归,感觉还是很好理解及很强大的,这里做个学习笔记。
首先引入一个引理,及皮亚诺公理,其定义了N,声明了数归的正确性并确保了其严谨性。
皮亚诺 公理:
①对于三元组(x,X,f),x为一元素,X为一无限集,f为X到自身的映射。
②存在唯一的x∈X,且x不在f的值域内。
③f是单射。
④一个不严谨的表述是:若集合A可以用与上述三条陈述相反的方法构造,且A的首元素∈X,则A包含于X。(这实际上等价于数归的基本原理)
对于第四条性质,实际上还有很多种更为严谨的表述,这里就不在赘述了。
这里我们发现自然数实际上是被递归定义的,于是我们发现了数归在其他类似结构中的正确性,比如树。
数归的基本思想:
对于一个可以被上述方法递归构造的集合A,证明x∈A成立,证明对于任意a∈A,由p(a)可推出p(f(a)),则可得命题在A内正确。
这显然是一个递归证明的思想,与DP是有很大相似处的,只不过用途不同、功能不同罢了。
一个简单的模型是:
①证明P(1)成立。
②证明对于任意x∈N,由p(x)可推出p(f(x)).
几个变体:
1、改变首元。(如从5开始等)
2、(扩展首元) 缩放 普遍性:
即p(x)在包含于A的B的正确性易证,而在C(A,B)中的元素虽难证却较少,便可以用列举的方式讲x∈C(A,B)作为A的首元处理。
3、 (缩放函数关系的普遍性)奇怪的f:
关于这玩意儿最牛的应用莫过于证明Fibonacci数列的通项公式了,即先证明p(0),p(1)成立,然后证明p(x)∩p(x+1)->p(f(x,x+1)=f(x)+f(x+1)).
这玩意儿由于代表了数归的某种高度的应用。。所以被称为完整归纳法。
4、逆向思维:递降归纳法。
我们发现皮亚诺公理中的f是个单射,这就意味着对于N的子集我们可以将其逆向处理;
即改为:证明p(a),证明对于任意x∈A,p(x)->p(x-1),命题得证。