hashly alg如何在Golly中永远存在?

Nax*_*mus 3 c algorithm f# infinite conways-game-of-life

在哈希生活中,该场通常被视为理论上无限的网格,其中所讨论的图案集中在原点附近.四叉树用于表示场.给定一个2 ^(2k)个单元的平方,一侧为2k,在树的第k级,哈希表在中心存储2 ^(k-1)乘2 ^(k-1)个单元的单元,未来2 ^(k-2)代.例如,对于4x4平方,它存储2x2中心,1代前进; 对于一个8x8的正方形,它存储了4x4中心,前进了2代.

因此,给定一个8x8的初始配置,我们得到一个4x4平方1代正向中心,8x8平方和2x2平方2代正向(1代向前,4x4平方),居中于8x8平方.随着每一代新生代我们对网格的看法减少,反过来我们得到了自动机的下一个状态.在获得最内部的2x2平方2 ^(k-2)代后,我们可以继续前进.

那么Golly的哈希生活将如何永远持续下去?此外,它对该领域的看法似乎从未减少.它似乎显示了2 ^(k-2)代后整个自动机的状态.更多的是,如果随着时间的推移而扩展的起始配置,算法的视图似乎会增加.网格视图缩小以显示不断扩大的自动机?

kvb*_*kvb 6

关于Dobb博士的一篇很好的文章详细介绍了HashLife的工作原理.基本答案是,您不仅要在现有节点上运行算法,还要使用新的移位节点来获取下一代节点.


Rob*_*afo 5

要清楚(因为你的^符号丢失了),你要问:

给定一个2 ^(2k)个单元的平方,一侧为2 ^ k,在树的第k级,哈希表存储2 ^(k-1)-by-2 ^(k-1)平方细胞在中心,未来2 ^(k-2)代.[...]

因此,给定8x8初始配置[...]随着每一代新生成,我们对网格的视图减少,反过来我们得到自动机的下一个状态.在获得最内部的2x2平方2 ^ k-2代后,我们可以继续前进.

那么Golly的哈希生活将如何永远持续下去?此外,它对该领域的看法似乎从未减少.

而不是从你的8x8模式开始,而是想象你从一个更大的模式开始,恰好包含你的8x8模式.例如,您可以从16x16图案开始,该图案在中心具有8x8图案,并且在边缘周围具有4行空白单元格边距.通过将空白4x4节点与8x8启动模式的4x4子节点组合,可以轻松构建这种模式.

鉴于这样的16x16模式,HashLife算法可以为您提供8x8答案,未来4代.

你想要更多?好的,从32x32模式开始,主要包含空白区域,中心有8x8模式.有了这个,你可以得到一个16x16的答案,这是未来8代.

如果你的模式包含的移动物体移动速度足够快,那么它们会在8代之后超出16x16区域?简单 - 从64x64启动模式开始,但不是试图运行它整整16代,只需运行它8代.

通常,在任意长的时间段内任意大的,可能扩展的模式的所有情况都可以通过在模式的外部周围添加所需的空白空间来处理(并且实际上在Golly 处理).