0

タイトルの説明が悪くてすみません。

次のような 2 次元リストを考えてみましょう。

list = [
    [1, 2],
    [2, 3],
    [3, 4]
]

このリストのすべての可能な「垂直」の組み合わせを抽出すると、合計 2*2*2=8 の組み合わせになると、次のシーケンスになります。

1, 2, 3
2, 2, 3
1, 3, 3
2, 3, 3
1, 2, 4
2, 2, 4
1, 3, 4
2, 3, 4

ここで、これらのシーケンスの一部を削除するとします。位置 #1 に数字 2 または位置 #3 に数字 4 を持つシーケンスのみを保持したいとします。次に、これらのシーケンスが残ります。

2, 2, 3
2, 3, 3
1, 2, 4
2, 2, 4
1, 3, 4
2, 3, 4

問題

これらの残りのシーケンスを、すべてのシーケンスを含むために必要な最小限の量の 2 次元リストに再結合したいと思いますが、それ以下でもそれ以上でもありません。

そうすることで、この特定の例で得られる 2 次元リストは次のようになります。

list_1 = [
    [2],
    [2, 3],
    [3, 4]
]
list_2 = [
    [1],
    [2, 3],
    [4] 
]

この特定のケースでは、結果のリストを考え出すことができます。しかし、数百の 2 次元リストを生成する数千のシーケンスがある場合、どうすればよいでしょうか? 2 週間にわたって優れたアルゴリズムを考え出そうとしていますが、満足のいく結果にはほど遠いものです。

4

1 に答える 1