Diberikan beberapa set, misalnya s1={2,3,7}
, s2={1,2,4,7,8}
dan s3={4,7}
, diagram Venn memvisualisasikan setiap set dengan kurva tertutup dan elemen set yang baik di dalam atau di luar perimeter kurva, tergantung pada apakah mereka merupakan elemen set atau tidak. Karena semua elemen himpunan hanya muncul satu kali dalam digram Venn, kurva yang mewakili setiap himpunan perlu tumpang tindih jika elemen ada di lebih dari satu himpunan. Kami menyebut masing-masing sel yang tumpang tindih tersebut sebagai diagram Venn.
Penjelasan ini mungkin agak membingungkan, jadi mari kita lihat sebuah contoh.
Contoh
Diagram Venn untuk set s1
, s2
dan s3
bisa terlihat seperti ini:
Sel-sel dari diagram Venn ini (dibaca dari atas ke bawah, kiri ke kanan) {1,8}
, {2}
, {7}
, {4}
, {3}
, {}
dan {}
.
Dalam praktiknya, seseorang biasanya hanya menemukan diagram Venn dari dua atau tiga set, karena representasi diagram Venn dari empat set atau lebih tidak terlalu jelas. Namun mereka ada, misalnya untuk enam set:
CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1472309
Tugas
Diberikan satu set himpunan bilangan bulat positif dalam representasi yang masuk akal, kembalikan set sel dari diagram Venn set input. Secara khusus, tidak diperlukan representasi grafis.
- Anda dapat menulis program atau fungsi lengkap.
- Anda dapat mengembalikan set kosong sebanyak ada sel kosong (yaitu daftar semua sel) alih-alih hanya satu set kosong (yaitu set sel).
- Beberapa cara yang wajar masukan untuk contoh di atas termasuk tetapi tidak terbatas pada
{{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"
atau"2 3 7\n1 2 4 7 8\n4 7"
. Jika ragu apakah format input yang Anda pilih dapat diterima, jangan ragu untuk bertanya dalam komentar. - Format output Anda harus sesuai dengan format input Anda, jika memungkinkan. Perhatikan bahwa aturan ini mengharuskan format Anda untuk dapat menampilkan set kosong yang jelas.
- Ini kode-golf , jadi coba gunakan sesedikit mungkin byte dalam bahasa pilihan Anda. Untuk mendorong persaingan per bahasa alih-alih antar bahasa, saya tidak akan menerima jawaban.
Uji Kasus
Berikut adalah beberapa input bersama dengan kemungkinan output:
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},{},{},{},{}}
?