Biorąc pod uwagę wiele zestawów, na przykład s1={2,3,7}, s2={1,2,4,7,8}i s3={4,7}, A Venna wizualizuje każdego zestawu przez krzywą zamkniętą i zestaw elementów, które wewnątrz lub na zewnątrz obwodu krzywej, w zależności od tego, czy są one element zbioru lub nie. Ponieważ wszystkie elementy zestawu pojawiają się tylko raz w digramie Venna, krzywe reprezentujące każdy zestaw muszą się nakładać, jeśli element występuje w więcej niż jednym zestawie. Nazywamy każdą taką nakładającą się komórkę diagramu Venna.
To wyjaśnienie może być nieco mylące, więc spójrzmy na przykład.
Przykład
Diagram Venna dla zestawów s1, s2a s3może wyglądać następująco:

Komórki tego diagramu Venna są (czytaj od góry do dołu, od lewej do prawej) {1,8}, {2}, {7}, {4}, {3}, {}i {}.
W praktyce często spotyka się tylko diagramy Venna dwóch lub trzech zestawów, ponieważ reprezentacja diagramów Venna czterech lub więcej zestawów nie jest bardzo wyraźna. Jednak istnieją, np. Dla sześciu zestawów:

CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1472309
Zadanie
Biorąc pod uwagę niepusty zbiór dodatnich liczb całkowitych w dowolnej rozsądnej reprezentacji, zwróć zestaw komórek ze schematu Venna zbiorów wejściowych. W szczególności nie jest wymagana reprezentacja graficzna.
- Możesz napisać pełny program lub funkcję.
- Możesz zwrócić tyle pustych zestawów, ile jest pustych komórek (tj. Listę wszystkich komórek) zamiast tylko jednego pustego zestawu (tj. Zestawu komórek).
- Niektóre rozsądne sposoby wejścia do powyższego przykładu, obejmują, ale nie są ograniczone do
{{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"lub"2 3 7\n1 2 4 7 8\n4 7". W razie wątpliwości, czy wybrany format wejściowy jest akceptowalny, prosimy o komentarz. - Jeśli to możliwe, format wyjściowy powinien odpowiadać formatowi wejściowemu. Pamiętaj, że ta reguła wymaga, aby Twój format mógł jednoznacznie wyświetlać puste zestawy.
- To jest golf golfowy , więc spróbuj użyć jak najmniej bajtów w wybranym języku. Aby zachęcić do rywalizacji między językami zamiast między językami, nie przyjmuję odpowiedzi.
Przypadki testowe
Oto niektóre dane wejściowe wraz z możliwymi danymi wyjściowymi:
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},{},{},{},{}}?