問題は説明が簡単です:2つの大きな配列(32ビットの整数値)があり、与えられた数の連続した位置(n)を超えるすべての共通の配列を見つけなければなりません。例えば2つの大きな配列で最も長い文字列の一致を得るために使用するアルゴリズムはどれですか?
、N = 3と比較するための配列の場合:
a = [1, 3, 5, 7, 3, 2, 7, 4, 6, 7, 2, 1, 0, 4, 6]
b = [2, 5, 7, 3, 2, 3, 4, 5, 6, 3, 2, 7, 4, 6, 0]
algoritmhは、二つの配列を返すべきである:最初の配列に、
r0 = [5, 7, 3, 2]
r1 = [3, 2, 7, 4, 6]
(またはそれをその相対位置および連続するバイトの数が一致した場合)。
私は良い点はLongest Common Substring Algorithmだと思っていますが、誰かが私の問題によく合ったアルゴリズムを知っているかもしれません。私が正しくあなたを理解し、nは、 その後I'deはボイヤー - ムーアの検索アルゴリズムのバリエーションを使用する配列の最小サイズである場合
これは、[Math.stackexchange](http://math.stackexchange.com/) – genesis
に属しています。これは、DNA配列の照合/整列という文脈でしばしば研究されているオープンな研究課題です。あなたは、人がDNAを使ってどのようにこれをやっているかを調べたり、いくつかの利用可能なライブラリを見つけたりすることで、より良い運があるかもしれません。 –
@マーク:これはオープンな研究課題とはどのようなものですか? –