0

1 週間前、私は宿題を受け取り、C で関数を作成する必要がありました。関数は正の整数の単一の配列を取得し、配列内の次の数値を返す必要があります。配列は次のようになります: {1,2,3,1,2,3,4,1,2,3,1,2,3,4,1,2,3,-1}; -1 は配列の終わりを意味します。

関数によって返される必要がある数値が 1 であることはわかっていますが、パターン検出アルゴリズムをどのようにコーディングすればよいでしょうか? パターン検索に関する他のすべての質問は、見つけなければならないパターンが既に与えられている文字列に関するものであるため、インターネット上で解決策を見つけられませんでした。

4

2 に答える 2

0

pmgによる回答に基づいて判断する簡単な方法の 1 つplenは、ブルート フォースを使用することです。

plenが に等しいと仮定することから始め、パターンが見つかるまでを1増やします。plen1

すべての要素で始まるシーケンスが配列plenの最初の要素と一致するかどうかを確認することで、パターンを見つけますplen。したがって、現在plenがの場合、インデックスto (含む) の要素がインデックス to (含む)の要素と一致する3かどうかを確認します。それらが一致する場合は、 index から始まる次のシーケンスをチェックします。等々。35026

配列の終わりマーカー-1が、検索しているシーケンス内にある場合は、plen. シーケンスが一致しない場合は、増加させplenてやり直してください。

于 2019-11-01T12:34:08.970 に答える