在哈希生活中,场通常被视为一个理论上无限大的网格,所讨论的模式靠近原点。四叉树用于表示字段。在树的kth层,给定2^( 2k )单元格的平方(2k),哈希表在中心存储2^(k-1)×2^(k-1)个单元格的2^(k-1)平方,在未来的2^(k-2)代中存储2^(k-2)代。例如,对于4x4平方,它存储2x2中心,1代前进;对于8x8平方,存储4x4中心,向前2代。
因此,给定一个8x8的初始配置,我们得到一个4x4平方1代向前中心的w.r.t。8x8平方和2x2平方向前(1代向前w.r.t,4x4平方)中心是w.r.t和8x8平方。随着新一代我们对网格视图的减少,我们得到了自动机的下一个状态。在得到内部最大2x2平方2^(k-2)代后,我们就不能再往前走了。
那么,戈利的哈希生活是如何永远持续下去的呢?而且,它对这一领域的看法似乎从未减少过。它似乎显示了整个自动机在2^(k-2)代之后的状态。更重要的是,如果开始配置随着时间的推移而扩展,则算法的视图似乎会增加。网格的视图放大以显示不断扩展的自动机?
发布于 2009-12-21 23:01:47
有一个关于多布博士的好文章,它详细介绍了HashLife的工作原理。基本的答案是,您不仅在现有的节点上运行该算法,还使用新的移位节点来获得下一代。
发布于 2011-10-21 04:54:43
要弄清楚(因为您的^符号丢失了),您会问:
给定2^(2k)单元格的平方,另一侧2^k,在树的kth级别上,哈希表存储中心的2^(k-1)-2^(k-1)个单元格的平方,以及未来的2^(k-2)代。..。 所以给定8x8的初始配置..。随着新一代我们对网格视图的减少,我们得到了自动机的下一个状态。我们不能再往前走了,在得到内部最大的2x2平方,2^k-2代之后。 那么,戈利的哈希生活是如何永远持续下去的呢?而且,它对这一领域的看法似乎从未减少过。
与其从您的8x8模式开始,不如设想您从一个更大的模式开始,该模式恰好包含您的8x8模式。例如,您可以从一个16x16模式开始,它的中间有8x8模式,边缘周围有4行空白单元格。通过将空白的4x4节点与您的8x8开始模式的4x4子节点组装,这样的模式很容易构建。
给定这样一个16x16模式,HashLife算法可以给你一个8x8的答案,在未来的4代。
你还想要吗?好的,从一个32x32模式开始,它主要包含空格,中间是8x8模式。有了这个,你就可以得到一个16x16的答案,也就是未来的8代。
如果您的模式包含移动速度足够快的对象,使它们在8代后离开那个16x16区域会怎么样?简单--从64x64启动模式开始,但是不要尝试运行整个16代,只运行8代。
通常,所有任意大的、可能扩展的模式,在任意长的时间内,都可以通过在模式外部添加尽可能多的空白来处理(实际上,是在Golly中处理的)。
发布于 2010-07-13 14:06:43
中间的正方形只是预先计算出来的东西。这个算法确实能在任何时候保持整个宇宙并更新它的所有部分,而不仅仅是中心。
https://stackoverflow.com/questions/1941910
复制相似问题