• 精选
  • 会员

宇宙的奥秘:递归、分形、循环(烧脑第二版)

2020年2月7日  来源:scottcgi 作者: 提供人:zhuoying34......
宇宙的奥秘:递归、分形、循环(烧脑第二版)

宇宙现实的运作模式是什么?程序现实物理现实会有着怎样的结构关联?无限是否存在且意味着什么?宇宙从哪里来要到那里去?它的目的和意义又是什么?

本文,将会从——递归、分形、循环——这三个层层递进,又相互关联的逻辑视角,给出一个从微观到宏观的图景(脑洞与烧脑并存)。

注:本文是《宇宙的奥秘》的升级版,在之前的概念基础之上,进行了更加深入、细致和全面的推演和分析,并给出了更加清晰明确的思路和逻辑。如果没有读过第一版,可以直接阅读第二版。

主题目录如下

  • 什么是递归
  • 程序与递归
  • 迭代与递归
  • 宇宙与递归
  • 人类与递归
  • 递归模式
  • 分形递归
  • 循环
  • 结语
  • One More Thing——无限

什么是递归

一个事物由这个事物本身所构建,那么在理解这个事物的时候,就需要先理解事物的构成,于是就回到理解这个事物本身,从而再次需要理解这个事物的构成……这个不断循环理解的过程就形成了——递归

显然,这个递归的解释本身也是递归的。

而从字面意思来看,递——是传递,归——是回归,那么从传递开始回归到传递的开始,就是从一个地方出发,回到了出发的地方,就完成了一次循环,而不断重复这个循环,就是——递归

这里有一个耳熟能详的递归故事

从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是什么呢?从前有座山,山里有座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是什么呢?从前有座山,山里有一座庙……等等……

由此可见,递归有两个要素,即:循环嵌套自身构建

  • 首先,循环嵌套——就是一遍又一遍的重复同样的过程,且每次重复都嵌套在上一次的重复之中。
  • 其次,自身构建——就是在循环嵌套的过程中,每次重复的过程和内容,都是由同一个“自身”(代表着结构和模式)所构成的。

例如,在上面那个耳熟能详的递归故事中:

  • 循环嵌套的——就是老和尚和小和尚在庙里说故事,其代表了上层循环的故事,也引出了下层循环的故事。
  • 自身构建的——就是这个故事的内容,其具有相同的结构和模式,有趣的是这同样也是“老和尚和小和尚在庙里说故事”。

于是我们可以看到,老和尚和小和尚在庙里说的故事就是——“老和尚和小和尚在庙里说故事”。所以,这个故事是递归的,因为故事循环嵌套,且故事是由其故事自身相同的结构和模式,所嵌套而构成的。

那么继续展开来说,这里有以下几点值得深思,并细细体会一番:

第一,自身构建,虽然其基本构成有相同的结构和模式,但不代表其内容和内涵是相同的。

例如,“老和尚和小和尚在庙里说故事”——是相同的结构和模式,但在每次循环中,都是不同的老和尚和小和尚,而这个说的故事,则包含了其后所有嵌套的故事的总和——也就是说每次循环中老和尚说的故事,都是其后所有故事的总和,且其后的每一个故事都有一个不同的老和尚和小和尚。

那么, “一个事物由这个事物本身所构建,那么在理解这个事物的时候,就需要先理解事物的构成,于是就回到理解这个事物本身。” ——这里,其实每次回到理解这个事物本身的时候,这个事物就已经不是原来的那个事物了,只是这些事物拥有相同的结构和模式,但不具有相同的内容和内涵。

第二,结构和模式相同,内容与内涵不同,意思就是说,结构和模式不变,但结构和模式所承载的数据变得不同了。

那么,“从传递开始回归到传递的开始,就是从一个地方出发,回到了出发的地方。”——这就是说,其实地方还是原来开始的地方,但这个地方的环境数据(环境信息),却发生了变化,与之前变的不同了。

于是很自然的,我们就会问,那在递归中的环境数据怎么就不同了?为什么会不同了?不同在哪里了?

事实上,老和尚、小和尚、庙、故事——就是数据(信息)。在每层的循环中,老和尚、小和尚、庙都对应着当前的故事——这是每层循环都不一样的一个故事,虽然结构和模式是一样的,但却是另外的时间、地点和人物,只不过同名同姓又同地(相同环境)。而老和尚和小和尚在说的故事,则指向了下一个同样结构和模式的故事。

由此,我们可以看到,环境数据——不同的老和尚、小和尚、庙,存储在了上下文中的结构之中。这个结构拥有相同的模式——就是“老和尚和小和尚在庙里说故事”,其中老和尚、小和尚、庙、故事都是结构的组成,可以替换成任意其它的同类型对象(比如不同的老和尚1,老和尚2……等等,以此类推),所以它们都是变量——存储着不同的数据。

第三,在递归的循环嵌套中,其任意局部的循环嵌套部分,也是递归的。

例如,在任意嵌套深度,局部的来看,重复嵌套的结构和模式都是——“老和尚和小和尚在庙里说的故事”,那么单看这些循环嵌套的局部,也亦是递归。

所以,在整体上的递归,在局部也存在着递归,甚至有时候——递归是由递归所构建而成的

第四,在递归中的自身构建,其相同的结构和模式,是可以拥有任意复杂度的。

也就是说,这个结构和模式,可以是由简单形式组合而成的复杂形式的——什么意思?举一个例子,让我们来扩展一下那个耳熟能详的递归故事

从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是什么呢?从前有一座山,山里有一座庵,庵里有一个老尼姑和一个小尼姑,她们在说故事,故事是什么呢?从前有一座山,山里有一座庙,庙里有一个老和尚和一个小和尚,他们在说故事,故事是什么呢?从前有一座山,山里有一座庵……等等……

我们可以看到,循环嵌套的故事变成了——“老和尚和小和尚在说故事,老尼姑和小尼姑在说故事”。所以,在自身构建中,相同的结构和模式也就变成了——“老和尚和老尼姑一起说对方的故事”。

当然,可想而知,我们可以通过组合的方法,无限复杂化自身构建中的结构和模式——甚至复杂到,让身处在递归中的智能生命体,无法感知到自己身处在递归的结构和模式之中。

第六,递归是可以拥有出口的,也就是说递归可以跳出并终止。

什么意思呢?这就是说,老和尚和小和尚的故事可以一直说下去,此时递归就是没有出口——无限循环嵌套下去的。

但如果老和尚和小和尚某次说的故事,其内容并没有继续说下一个故事——比如老和尚和小和尚在探讨递归的奥秘,不在说自身模式的那个故事——那么,此时递归就结束终止了。于是,这一次的老和尚和小和尚就成为了最后一次的循环——也就是递归的出口。

而同时,递归终止就会开始回溯,从最后一次循环开始逐层返回到上一层,这代表着“故事”的层层回归。

要知道,在递归结束之前,我们并没有任何一个完整的故事,因为每个故事都没有说完,每一个故事都有下一层的老和尚和小和尚在说,但还没说完的故事。

最终,回溯会收敛到最开始,就是第一次老和尚和小和尚在说故事,同时我们也会得到一个最完整的故事,其内容就是第一次循环到最后一次循环之间所有的(相同结构不同内涵的)故事总和。

于是,这个故事就包含了——各种不同的老和尚、小和尚、庙,直到最后老和尚和小和尚在递归终止处探讨递归的奥秘,这些所有的数据。

那么显然,如果递归没有出口,就不会有回溯和收敛,所有的一切都是不完整的,一切都是局部的,数据会散落在结构的各处——存储在上下文之中,结构的模式相同——并形成嵌套,而重复的结构会一直延伸到循环的无限处

这里再给出一个,更加简单且贴近生活的一个递归模式:

例如,公司的日常管理,总裁只会管理副总裁,副总裁管理部门负责人,部门负责人管理总监,总监管理经理,经理管理员工——每一层都是抽象化相同的管理,而从员工层层回溯的是执行力,当总裁了解公司执行情况的时候,一次递归调用就结束了。

递归 / 宇宙 / 分形 / 循环 / 迭代

如涉及版权,请著作权人与本网站联系,删除或支付费用事宜。

0000