用自动机可以模拟出一个世界,虽然这个世界是虚拟的,但这个世界里面将会根据基础的自动机规则自动推算出很多有趣的规则。人类也能很简单理解在自动机模拟的世界里面,在这个世界里面的生物是无法感知时间断片的
我不是物理学家,本文也不是任何证明现实世界时间相关的文章。但我是计算机的砖家,搬了很多年的砖的我也知道在计算机里面可以简单做出一个虚拟的世界,本文就是说明在自动机模拟出来的世界里面的生物是无法感知时间断片的,也无法测量时间断片
从我的上篇自动机博客里,告诉了大家如何创建一个自动机的世界。以下为一个创建自动机世界的方法,创建规则如下
- 在一个有限的二维布尔数组里面,以 true 代表存活
- 不断根据算法规则遍历数组,同时创建出新的相同大小的数组用于迭代
- 新创建的数组将根据旧数组的数据按照一定的算法更新数组每个元素的值
从上层看,可以认为我有一个数组,且这个数组的元素会跟随时间进行变化。虽然博客里面讲的是底层将利用到两个数组,但实际上可以从上层的角度上看到的只有一个数组,这是因为新创建的数组就替换旧的数组,始终只保持只有一个数组。将数组作为一张图片,每个元素具有固定的宽度和高度,里面的元素按照布尔值给不同的颜色,于是就可以画出自动机的虚拟世界,这是一个二维的世界
那么新数组创建的算法可以怎么选?下面是一个简单的计算方法,设定每次更新新数组就成为新的回合开始,每个数组里面的元素称为 Cell 而根据布尔值状态可以认定为 Cell 的存活或不存活,那么创建自动机世界只需要三条规则
- 在 Cell 周围有两个或三个邻居存活,他就可以存活。这里的周围指的是将二维数组放在二维平面对应的元素的周围的元素
- 如果 Cell 已经不存活,但他周围有三个邻居,于是他就可以出生
- 在 Cell 周围,如果有超过三个以上的邻居,他就因为太拥挤而不存活。如果有小于两个邻居存活,他因为他孤单而不存活
简单按照颜色黑色和白色,同时每个格子表示一个数组的元素,那么运行自动机世界可以看到下图
上面是刚好满足以上条件 1 的静态图,也就是随着数组的迭代也就是回合数的变化,这些自动机世界里面的图案是不会发生更改的。但下面的图片将会随着回合数的变化,进行循环变化
根据这个规则,这个世界的驱动是随着时间更改二维布尔数据而让这个世界继续往下走。而这里的随着时间更改的时间却是咱计算机的时间。意味着咱的计算机配置不错,可以一秒跑一遍,让自动机推进。而如果我打开了 QQ 电脑就卡了,此时需要10秒才能跑一遍。而对于没有参照物的自动机里面的世界,是无法知道现在这个自动机的时间流速和计算机时间流速的对比的。甚至,当我需要关机断电时,我将数据保存起来,等到我下一次开机,再加载我保存的数据,根据保存的数据继续跑下去。那么自动机里面的生物依然会认为自己的时间还在继续走,是连续在走,自动机里面的生物不会感知到我曾经断电了
可怕的是如果我在某一次断电的时候,我的电脑被损坏了,数据丢了。此时意味着这个自动机的世界没有下一个时间了。也就是自动机里面的杞人可能担忧的是没有下一秒了,时间就此结束,自动机虚拟世界就此不存在了
而如果我的电脑只是被砸坏了,数据有点损坏,没有完全丢失数据。当我加载损坏的数据,继续运行自动机虚拟世界时,那么自动机里面的生物也许会发现有很多自相矛盾的历史事件,却很难意识到某个时间自动机的世界就被更改数据了
这是一个很有趣的事情,在自动机虚拟世界里面的生物,既无法直接感知到时间断片,甚至在自动机虚拟世界里面的杞人们所担忧的世界可能没有下一秒的存在,也是完全可能发生的。更有趣的是,有时候自动机虚拟世界里面的生物发现自己的过往历史很是奇怪,难以找到其逻辑性,这是因为自动机虚拟世界对应的数据被损坏之后再次加载
本文所说仅仅是自动机的世界,而不是说现实的世界,请不要认为现实的世界也是这个样子。从因果倒置的方式说,因为我认为也许在很长的时间,都不会存在时间旅行的技术,这就是为什么我找不到未来过来的东西的依据
只要设计出能进行时间旅行的世界,那么瞬间在这个世界里面的技术和文化将会爆掉。原因是我时间推进一年,此时将这一年的知识拿回到上一年,于是上一年就拥有了一年的技术。然后递归,不断推进下一年,回到上一年,直到无法消化这部分技术
更多自动机博客请看
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。 欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。