我正在尝试编写一些代码来实现“模糊哈希”。也就是说:我希望多个输入可以哈希到相同的输出,以便我可以快速轻松地进行搜索等操作。如果A哈希为1且C哈希为1,则我可以很容易地找出A等同于C。
设计这样的哈希函数似乎很困难,因此我想知道是否有人有使用CMPH或GPERF的经验,并能够指导我创建一个结果为此哈希函数的函数。
提前感谢! Stefan
@Ben
在这种情况下,是布尔矩阵,但我可以很容易地将它们打包成64位整数。输入中的旋转、平移等都是无关紧要的,需要被淘汰。
设计这样的哈希函数似乎很困难,因此我想知道是否有人有使用CMPH或GPERF的经验,并能够指导我创建一个结果为此哈希函数的函数。
提前感谢! Stefan
@Ben
在这种情况下,是布尔矩阵,但我可以很容易地将它们打包成64位整数。输入中的旋转、平移等都是无关紧要的,需要被淘汰。
000
111
000
等价于
111
000
000
并且
001
001
001
(简化)
@Kinopiko
目前我最好的办法是确定一种“规范”表示形式,并设计代码,当转换达到这种表示形式时终止代码(比如…将所有位都打包在底部)。但这样做速度很慢,我正在寻找更好的方法。我的数据集很大。
@Jason
这两个不会散列到相同的值。
000
010
000
000
011
000