0

IDの個別のリストがいくつかあるという問題があります。

リスト (A) 1,2,3,4,5,7,8
リスト (B
) 2,3,4,5 リスト (C) 4,2,8,9,1
etc...

次に、ID の別のコレクションがあります...
例: 1,2,4

各リストに 1 つを一致させる必要があります。セカンダリ コレクション (各リストの ID と一致する 1 つのコレクション ID) 内のすべての ID を完全に一致させることができれば、真の結果が得られます....

遭遇した最初のコレクション/リストのペアに一致するリストを単純に反復すると、さらに下の可能な組み合わせが除外され、偽陰性の結果が返される可能性があるため、複雑になることがわかりました。

例えば:

リスト (A) 1,2,3,4
リスト (B) 1,2,3,4
リスト (C) 3,4

コレクション: 3,1,2

コレクションの最初の ID (3) はリスト A のエントリと一致し、コレクションの 2 番目の ID (1) はリスト B の項目と一致しますが、コレクションの最後の ID (2) はリスト C のエントリと一致しません。ただし、コレクションの順序を 2,1,3 に並べ替えると、一致が見つかります.... したがって、可能なすべての組み合わせで効率的な方法 (?) で一致を試行するための何らかの形のロジックを探しています。

さらに複雑にするために、ID は実際には GUID であるため、昇順でソートすることはできません。

私が何をしようとしているのかを明確にするためにこれを十分に説明したことを願っています。少し運が良ければ、私がしなければならないことは非常に簡単で、本当に単純なものが欠けていることを誰かが教えてくれるでしょう!
これをVB6でコーディングすることを余儀なくされていますが、メソッドや擬似コードは素晴らしいでしょう。これのバックエンドは SQL サーバーであるため、TSQL を使用したソリューションが可能であれば、すべての ID が既にテーブルに保持されているため、これはさらに優れています。

よろしくお願いします。

4

2 に答える 2

0

ジェイク、ええ、リストとコレクションの両方に GUIDS が含まれています。問題を少し単純化するために、単純な整数を使用しました。

リストが一致すると、再度検索することはできません。したがって、説明しようとした順序の問題です。リストが「一致した」と言った場合、これ以上の一致の試行は実行されません。偽陰性を引き起こす可能性があるのは、まさにこの動作です。

注文の可能なすべての組み合わせでコレクションを「送信」することは機能しますが、大規模な作業になります.....

ここで本当に簡単な概念や解決策が欠けているに違いないと思います??!!
これまでご支援いただきありがとうございました。

于 2010-12-02T14:07:06.883 に答える
0

コレクション内の各 GUID に対して、リストに含まれる各 GUID をチェックする方法がわかりません。コレクション内の各 GUID がどのリストに含まれているかを記録しておく必要があります。

コレクション(3、1、2)の例を使用するには、リストA、B、およびCに3が発生します。基本的に、このデータセットが残ります。

  • 3 (A、B、C)
  • 1 (A、B)
  • 2 (A、B)

このデータセットまで抽出したら、リストに出現回数がゼロの GUID があり、結果がマイナスになるかどうかを判断できます。

私はアルゴリズムにまったく精通していませんが、これがその後の進め方です。最初のセット(A、B、C)から始めて、データセットでさらに何回発生するかを確認します。この場合、オカレンスは見つかりません。

次のセット (A、B) に進むと、このセットの出現回数がこのセットの長さよりも大きい場合、つまり 2 回以上出現する場合は、陰性となります。ここでのケースのように、出現回数が長さと正確に一致する場合、セット (A, B) はそれ以上の考慮から除外できます。

  • 3 (C)
  • 1 ()
  • 2 ()

ネガが特定されるか、すべての発生が除外されるまで、プロセスを繰り返し続けると思います。この種の問題にはおそらく認識されているアルゴリズムがありますが、その点で私の知識は少し不足しています。:(

于 2010-12-03T08:16:38.903 に答える