複数のセット、例えば所定のs1={2,3,7}
、s2={1,2,4,7,8}
及びs3={4,7}
、ベン図を、それらが集合の要素であるか否かに応じて、閉曲線のいずれかの内側または外側の曲線の境界である組の要素により可視化各セット。すべてのセット要素はベン図に1回しか表示されないため、要素が複数のセットに存在する場合、各セットを表す曲線はオーバーラップする必要があります。このようなそれぞれを、ベン図のセルの重複と呼びます。
この説明は少しわかりにくいかもしれませんので、例を見てみましょう。
例
セットのためのベン図はs1
、s2
とs3
このようになります。
このベン図の細胞は、(左から右へ、上から下に読み取り)であり{1,8}
、{2}
、{7}
、{4}
、{3}
、{}
および{}
。
実際には、4つ以上のセットのベン図の表現があまり明確ではないため、一般に2セットまたは3セットのベン図のみに遭遇します。ただし、これらは存在します。たとえば、6セットの場合:CC BY-SA 3.0、https:
//commons.wikimedia.org/w/index.php?curid = 1472309
タスク
妥当な表現で正の整数のセットの空でないセットが与えられると、入力セットのベン図のセルのセットを返します。具体的には、グラフィカルな表現は必要ありません。
- 完全なプログラムまたは関数を作成できます。
- 空のセル(すなわちがあるとして、あなたは多くの空のセットとして返すことがあり、リストのすべてのセルの)だけではなく1つの空のセット(すなわち集合細胞のは)。
- 上記の例のための入力のいくつかの合理的な方法は、限定されないが
{{2,3,7},{1,2,4,7,8},{4,7}}
、[[2,3,7],[1,2,4,7,8],[4,7]]
、"2,3,7;1,2,4,7,8;4,7"
または"2 3 7\n1 2 4 7 8\n4 7"
。選択した入力形式が受け入れられるかどうか疑わしい場合は、コメントでお気軽にお問い合わせください。 - 可能な場合、出力形式は入力形式と一致する必要があります。このルールでは、空のセットを明確に表示できる形式が必要です。
- これはcode-golfなので、選択した言語でできるだけ少ないバイトを使用するようにしてください。言語間ではなく言語ごとの競争を促進するために、私は答えを受け入れません。
テストケース
いくつかの入力と可能な出力を次に示します。
input -> output
{{2,3,7},{1,2,4,7,8},{4,7}} -> {{1,8},{2},{7},{4},{3},{}} (or {{1,8},{2},{7},{4},{3},{},{}})
{{1,2,3},{4,5,6},{7,8,9}} -> {{1,2,3},{4,5,6},{7,8,9},{}}
{{}} -> {{}}
{{1,2,3},{1,2}} -> {{1,2},{3},{}}
{{4,3,8},{1,2,9,3},{14,7,8,5},{6,11,3,8},{10},{9,4,3,7,10}} -> {{6,11},{10},{4},{3},{8},{5,14},{1,2},{9},{7},{}}
{{2,3,4,7},{},{1,3,7,5,6},{2,3,7,5},{7,2,4,3,6},{1,4,5}} -> {{},{4},{2},{7,3},{1},{6},{5}}
{{1,2,3,4},{1,2,5,6},{1,3,5,7}} -> {{4},{3},{2},{1},{6},{5},{7}}
{{1,2,3},{4,5,6},{7,8,9},{},{},{},{}}
ですか?