模糊比特匹配

时间:2013-09-27 16:26:24

标签: algorithm fuzzy-search

我有一个非常长的比特序列,称为A,以及一个较短的比特序列x。在对齐它们之后,相同长度的两个比特序列是模糊匹配的,存在k或更少的不匹配比特。我想在A中找到x的所有这种模糊出现。

到目前为止,我尝试过天真的方法。循环通过A,然后对于每个位,循环遍历x的长度,计算从A中该位置开始的不匹配位的数量,如果它不超过k,则报告该位置。该算法效率不高。如果A具有n_A位,并且x具有n_x位,则运行时间为O(n_A * n_x)

我被告知,无论O(n_A * log(n_A))如何,都可以k完成此操作。提供的提示是利用快速傅立叶变换。请记住,对于两个输入enter image description hereenter image description here,卷积会生成enter image description here其中

qqn

类似于多项式乘法。我不清楚如何使用这个提示。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:4)

反转x,将每个位b替换为(-1)** b,并进行卷积。我会让你解释你的作业下一步该做什么。