Jawaban atas pertanyaan ini terlalu panjang
Tantangan Anda adalah menulis fungsi pemartisian dalam jumlah karakter terkecil.
Contoh input
['a', 'b', 'c']
Contoh keluaran
[(('a'),('b'),('c')),
(('a', 'b'), ('c')),
(('a', 'c'), ('b')),
(('b', 'c'), ('a')),
(('a', 'b', 'c'))]
Input dapat berupa daftar / array / set / string dll. Apa pun yang termudah untuk diproses oleh fungsi Anda
Anda juga dapat memilih format output yang sesuai dengan diri Anda selama strukturnya jelas.
Fungsi Anda harus bekerja setidaknya untuk 6 item dalam input
code-golf
set-partitions
gnibbler
sumber
sumber
Jawaban:
GolfScript (43 karakter)
atau
Format input yang sama, format output, dan nama fungsi sebagai solusi Howard. Tidak ada pemaksaan kasar: ini mengambil pendekatan berulang sederhana menambahkan satu elemen dari daftar input ke partisi setiap kali sepanjang lingkaran luar.
sumber
GolfScript, 51 karakter
Script mendefinisikan variabel
P
yang mengambil array dari atas tumpukan dan mendorong kembali daftar semua partisi, misalnyaItu juga berfungsi pada daftar yang lebih besar:
Anda dapat melakukan tes sendiri secara online .
sumber
J, 51 karakter
Mengambil input dari keyboard, item dipisahkan oleh spasi:
sumber
Haskell,
90877166Disimpan 5 byte berkat nimi .
Contoh:
sumber
#
::map(y:)(x#s)
dan mengubah lambda menjadi versi titik bebas:foldr((=<<).(#))[[]]
.Python 2, 131 byte
Cobalah online
Gunakan algoritma ini .
sumber