Hash 散列是比较两个32x64二维数组的好方法吗?

Hash 散列是比较两个32x64二维数组的好方法吗?,hash,conways-game-of-life,Hash,Conways Game Of Life,我正试图在嵌入式设备上实现康威的生活游戏。我只有1kb的RAM可以使用,总共有2048个单元,相当于512字节。我将一次计算下一代8x8单元,这样我就不必在任何一点在RAM中存储两代 然而,我还想做的是检测GoL何时处于循环/静态状态。当我在一台PC上创建一个模型时,我只存储了上一代和第千代的数据,并将当前一代与之进行了比较。我不能用1kb的RAM做这件事,我想做的只是计算上一代x的哈希值,并将其与当前一代的哈希值进行比较 XTEA或SHA1有一些非常简单的实现,但我不确定哈希是否真的适合这个目

我正试图在嵌入式设备上实现康威的生活游戏。我只有1kb的RAM可以使用,总共有2048个单元,相当于512字节。我将一次计算下一代8x8单元,这样我就不必在任何一点在RAM中存储两代

然而,我还想做的是检测GoL何时处于循环/静态状态。当我在一台PC上创建一个模型时,我只存储了上一代和第千代的数据,并将当前一代与之进行了比较。我不能用1kb的RAM做这件事,我想做的只是计算上一代x的哈希值,并将其与当前一代的哈希值进行比较

XTEA或SHA1有一些非常简单的实现,但我不确定哈希是否真的适合这个目的,因为我需要确定两代中的每个单元是否相等。你推荐什么

谢谢


编辑:我只是想,我实际上可以计算匹配的数量,如果它达到某个阈值,然后假设它在一个循环中,但对于每一千代左右重复出现的模式来说,这不是很好。

哈希很好地判断事情不相等的情况。如果散列相等,那么您仍然需要(当然应该)进行单独比较。

我认为这是一个不错的选择。散列冲突的概率很低,因此可以接受您的应用程序,它不是核反应堆。

我决定只得到一个具有更多RAM的设备,但我观察到的一件事是,如果有一个模式,那么相同的模式将每x代匹配一次,而如果它只是一个随机哈希冲突,那么它不会。因此,如果我们有以下几代人:

123*
231
312
123*
231
312
123*
123每三代匹配一次。哈希冲突不会发生这种情况

其他答案都是正确和有价值的,但这是唯一能解决问题的答案。我不确定回答你自己的问题时的礼节是什么,所以如果我不应该将此标记为答案,那么请不要否决它,只需给我发消息,我将重新指定正确的答案

谢谢


太好了,你有什么特别推荐的方法吗?SHA1已经足够好了。不确定XTEA,是散列算法吗?据我所知,这是一种分组密码。您可以使用SHA-256,但它会产生更长的散列,可能不值得。