次のパターンに従う値を保持するベクトル stdclock があります。
stdclock=[13 25 38 50 63 75 88 100 113 125 138 150 163 175 188 200 213 2517 2529 2542 2554 2567 2579 2592 2604 2617 2629 2642 2654 2667 2679 2692 2704 2717]
このデータは、12 個または 13 個離れた 17 個の値をエンコードすることによって生成されます (例: 25-13=12、38-25 = 13 など)。最初の 17 個の値がこのパターンに従っていることがわかります。17 個の値の各グループは、オブジェクトをエンコードします。これを「アイテム」と呼び、後続の 17 個の値から独立しています。次に、値 17 と 18 の間には、12 または 13 よりもはるかに大きな差がありますが、たとえば 15 よりも大きい数値になる可能性があります。この差は、最初の 17 の値が 1 つの項目をエンコードするような、データ内の質的な分離を表します。 、次の 17 の値は別のアイテムをエンコードするなどです。17 番目と 18 番目の値の差は 12 や 13 ほど小さくはなりません。このようにデータ。あるいは、
ここまでは順調ですね。問題は、このベクトルがハードウェアを介して生成されることです。ハードウェアでは、1 つまたは複数の値が単純に削除されて記録されないなどのエラーが発生することがあります。「アイテム」から値が欠落していることを検出し、そのアイテムから残りのすべての値を削除するアルゴリズムを見つけたいです。
エラーのすべてのパターンで機能する方法でこれを行う方法について頭を悩ませることはできません(たとえば、アイテムが任意のパターンでどこでも番号が欠落している可能性があり、隣接するアイテムも任意の場所で番号が欠落している可能性がある場合)パターン、またはどこにもありません)。
どんな助けでも大歓迎です。「破損した」アイテムの例は次のようになります
stdclock=[13 25 38 50 63 75 88 100 113 125 138 150 163 175 188 200 213 2529 2542 2554 2567 2579 2592 2604 2642 2654 2679 2692 2704]
この stdclock は上のものと同じですが、2 番目の項目を調べて、最初と最後の数字を含む数字をランダムに削除しました。