【发布时间】:2018-04-27 05:18:43
【问题描述】:
如果您有n 二进制字符串,每个长度为m,有没有比比较所有O(n^2) 对并计算它们的汉明距离更快的方法来确定任何对之间的最小Hamming distance ?
那可以在
O(n^2m)时间内完成吗?
除此之外,如下所述,汉明距离是一个适当的距离函数,因此满足三角不等式,这让我觉得应该有一个更快的解决方案。
【问题讨论】:
-
www 上有大量的论文和其他资源。试试谷歌!到目前为止,您尝试了什么?
-
这是一个距离,所以它验证了
d(a,c) ≤ d(a,b)+d(b,c),这当然可以用来不测试每一对。 -
这也可能对你有所帮助(你必须找到一个好的订购):stackoverflow.com/questions/38900004/…
-
@MrSmith42:
n二进制字符串具有(n-1)*n/2汉明距离,因为汉明距离是在两个字符串之间定义的。在这样的汉明空间中进行有效的最近邻搜索并非易事。至少到目前为止,我的 Google 搜索还没有取得成果。 -
您可以构造一个kd-tree 并且(对于
m的适度值)使用查找表来确定两个字符串之间的距离。这会导致复杂性O(n log n)。
标签: string algorithm hamming-distance