我对递归的理解

我眼中的递归,是一个数理命题,以等价或蕴含的命题形式描述了某个集合与它自身发生了关联,一言以蔽之:递归是定义在某个集合上的局部封闭或完全封闭的映射关系

也即:若映射关系f的定义域为集合A,则对于所有属于集合A的元素x0、x1、x2...x∞,经过f的映射后,形成了新的元素序列f(x0)、f(x1)、f(x2)...f(∞),在映射后的元素序列中,部分或全部元素属于集合A,因而这部分属于集合A的元素依然满足映射关系f,再次映射成新的序列,新序列中可能仍有属于集合A的部分能够被f再次映射...如此循环往复即为递归

所谓的命题,就如同数理逻辑中的蕴含(→)或等价(↔),而所谓的集合,是由一类具有共性的事物的共同点而抽象出的一个事物。譬如牡丹、玫瑰、紫罗兰的共同点有:都是花,都是植物,且都是生物.那么牡丹、玫瑰、紫罗兰集合植物牡丹、玫瑰、紫罗兰集合,同样地,生物也是牡丹、玫瑰、紫罗兰集合.而牡丹、玫瑰、紫罗兰分别是花、植物和生物的元素。由于事物在逻辑上可以无限细分(如,器官-组织-细胞-分子-原子…),因而也可以在逻辑上无限抽象.譬如:对于花、植物、生物这三种事物,虽然它们已经分别是牡丹、玫瑰、紫罗兰的集合了,但我们依然可以在任意角度进一步地抽象出它们之间的共性,譬如它们都是中文词语,因而中文词语是花、植物、生物的集合,反过来,花、植物、生物是中文词语元素.也就是说,由于任何事物在逻辑意义上都可以无限划分和无限抽象,那么任何一个事物都可以看作其他具有共性的众多事物的集合 ,而它的任意一个元素依然可以作为拥有无限多个元素的集合, 并且从集合到元素这种自上而下的关系具有传递性.(即,若C属于B,且B属于A,那么C也属于A.又如:牡丹是花,花是中文词语,因而牡丹是中文词语,而中文词语可以看作集合词语的实例,那么根据传递性,花也是词语,牡丹也是词语.)同样地,任意一个集合也是它自身的元素(牡丹是牡丹,花是花,中文词语是中文词语,词语是词语).


然后举个老生常谈的例子说明一下递归的具体体现:

我首先想到的例子就是阶乘.阶乘是一个定义在自然数集上的映射关系,此处为从自然数m到A(m)的映射关系,映射规则如下:
A(m)=1---------------------------------------------------(当m=0或1)
A(m)=m×A(m-1)----------------------------(当m是≥1的自然数)

阶乘的定义中就存在着递归,下面我们来依据我对递归下的定义,分析一下为什么阶乘的定义中存在着递归.

我在上文中已经阐明,凡是能作为其他事物的共性的事物均可被称为集合,由于任何事物都可以在逻辑上无限细分或抽象,那么任何事物都可以是集合,所以"A(m),m为≥0的自然数"集合Z.显然,集合Z的定义域是离散的无穷多个元素A(0)、A(1)、A(2)、A(3)、…A(∞).

再看映射关系(即对某个集合中所有元素都适用的规则,只要元素属于该集合,就必须满足这个规则,映射关系常以等价或蕴含的命题形式体现。这里映射关系是对集合Z中所有元素A(0)、A(1)、A(2)、A(3)、…A(∞)所规定的规则):

根据阶乘给定的规则A(m)=1---------------------------------------------------(当m=0或1)可以得出,映射关系规定了集合Z中的所有元素均为数字,且前2个元素A(0)、A(1)的值均为1.又由A(m)=m×A(m-1)----------------------------(当m是≥1的自然数)得出,当m为≥2的自然数时,A(m-1)就是Z的元素,就可以套用规则"A(m)=m×A(m-1),m是≥1的自然数",得到A(m-1)=(m-1)×A(m-1-1)=(m-1)×A(m-2)

同样地,只要m≥3,A(m-2)就是Z的元素,就可以套用规则"A(m)=m×A(m-1),m是≥1的自然数",得到A(m-2)=(m-2)×A(m-2-1)=(m-2)×A(m-3).

因此就有:

A(m)=m×A(m-1) ----------------------------------------------- (m≥1)
A(m-1)=(m-1)×A(m-1-1)=(m-1)×A(m-2) ----------------------(m≥2)
A(m-2)=(m-2)×A(m-2-1)=(m-2)×A(m-3) ----------------------(m≥3)

再综合阶乘定义中的A(0)=1,A(1)=1,就有
A(0)=1
A(1)=1
A(2)=2×A(2-1)=2×1
A(3)=3×A(3-1)=3×A(2)=3×2×1

A(n)=n×(n-1)×(n-2)×(n-3)× ×3×2×1

所以,通过含有递归形式的命题,以简明且有限的命题,就把自然数集上的无穷多个数均定义在了阶乘的映射关系当中.在阶乘的定义中,出现了集合中元素根据映射规则产生了属于该集合的元素,也就是集合和它自身发生了关联,因而产生了递归.

再如汉诺塔问题的递归解法,本质上还是一个集合以蕴含或等价的命题形式与它自身发生了关联.这里不再细说汉诺塔问题的本身,仅阐述解法中出现的递归现象.

f(n,a,b,c)↔a->c---------------(n=1)
f(n,a,b,c)↔[ f(n-1,a,c,b), a->c, f(n-1,b,a,c) ]---------------(n为大于1的正整数)

其中集合"f(q,任意字符,任意字符),q为≥1的自然数"(记为集合C) 和它自身发生了关联,即集合C等价于含有属于集合C的元素的部分f(n-1,a,c,b)和f(n-1,b,a,c),因而它们可以在q为≥2的自然数的条件下继续等价展开,这里不再赘述.因此,时间消耗随着n的增加而呈指数级增长,n不是很大的时候,比如50,即便是计算速度非常快的计算机也将耗费很久的时间才能完成这个递归过程.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值