N セットの値があります。
- S1 = {A、B、C、D、E}
- S2 = {A、B、C、D、E、F}
- S3 = {A,B}
- S4 = {C、E、F、G、H}
コレクションの各セットに個別の値または一意の値があるかどうかを知りたいです...つまり。他にはない各セットに少なくとも1つの値を残すセットを通る「パス」はありますか..上記の例に対する答えは、S1からのB、S2からのD、S2からのAなど、TRUEになります。 S3 と S4 からの C
FALSE の例は次のようになります。
- S1 = {A、B、C}
- S2 = {A}
- S3 = {A,B}
- S4 = {A,C}
セット間で値を複製する必要があるためです。
いつものように、この問題には些細な解決策があるに違いないと確信しています。どんな助けでも非常に感謝しています。ありがとうございました
明確化
これまでの回答に感謝しますが、(私が思うに)単純な要件があるにもかかわらず、私はまだこれに少し混乱しています。私は、質問が実際に表している問題よりも紛らわしいように聞こえる質問をしたと思います。
明確にするために、私の最終目標は次のとおりです。
- 各セットから 1 つの値を取得します。
- この新しい値のリストは、互いに区別する必要があります。
- 各セットから選択される値は比較的恣意的です。
- 入力セットから単一の個別の値を導出できない場合、プロセスは何も返さないようにする必要があります。
二部グラフと最大フローについて読んだことがありますが、「木からの木」をまったく見ることができません。最終的には、これを実装するために .NET でコードを記述する必要があるため、それが不可能な場合は、擬似コードが非常に役立ちます。関連するアルゴリズムが実際に動作している簡単な例があれば素晴らしいでしょう。