Algorithm 按相似性排序的位字符串哈希
问题描述: 我们有很多相同大小的位字符串。位字符串的数量和大小都是巨大的。例如:10100101和000011111 现在有一个距离函数,它只计算相同位位置的数量。在本例中:距离为2-因为最后三位和最后一位是由两个位字符串设置的 ->现在我们可以使用最大距离遍历位字符串,因为每个位字符串都可以转换为一个顶点,该顶点连接到所有其他位字符串(通过距离函数) 目标 然而,这具有O(N²)的复杂性。我的想法是使用散列函数,它保留了相似性,而不是对散列值进行简单排序。这将导致接近最大行程。当然这不是最好的结果,但应该是一个不错的结果 当前问题 我自己的哈希函数对左位的评分高于左位。因此,它们对排序有更显著的影响 实际问题Algorithm 按相似性排序的位字符串哈希,algorithm,sorting,hash,similarity,Algorithm,Sorting,Hash,Similarity,问题描述: 我们有很多相同大小的位字符串。位字符串的数量和大小都是巨大的。例如:10100101和000011111 现在有一个距离函数,它只计算相同位位置的数量。在本例中:距离为2-因为最后三位和最后一位是由两个位字符串设置的 ->现在我们可以使用最大距离遍历位字符串,因为每个位字符串都可以转换为一个顶点,该顶点连接到所有其他位字符串(通过距离函数) 目标 然而,这具有O(N²)的复杂性。我的想法是使用散列函数,它保留了相似性,而不是对散列值进行简单排序。这将导致接近最大行程。当然这不是最好的
- 这样的算法存在吗
- 是否可以使用局部敏感哈希(LSH)来实现该目标,如果可以,您能否制定相应的算法。(我现在不懂算法)
谢谢大家popcount(A&B)+Stanford bithacksCan您可以进一步解释一下您的评论吗?将A和B之间的
1
位按位和A和B之间的1>位共同对应。popcount():=计算1
位数的函数。到位字符串的距离不是问题所在。我想用散列函数对它们进行排序,这样可以保持相似性。