Tugas
Diberikan set
dan bilangan bulat
temukan himpunan bagian ke-N.
Input output
N diberikan sebagai integer tak bertanda pada stdin. Anda harus mencetak subset N dalam format yang sesuai untuk bahasa Anda (ini mungkin termasuk [1,2,3]
, {1,2,3}
, [1, 2, 3]
, 1 2 3
, 1,2,3
dll selama itu adalah dibaca manusia text format).
Sedikit tentang himpunan bagian
Ada hubungan antara himpunan bagian dan angka di basis dua. Setiap digit
Menentukan apakah saya th elemen dari himpunan adalah dalam subset. Misalnya 00000000 akan menjadi himpunan kosong dan 10000001 adalah himpunan bagian yang mengandung (elemen terakhir dan pertama). Anda mendapatkan subset Nth dengan mengubah angka menjadi basis 2 dan kemudian subset mencakup semua elemen di mana . Subset ke-3 (3 = 00000011) dengan demikian mengandung . Digit paling kanan adalah digit # 0. Tidak apa-apa untuk mencetak . Set tidak harus disortir.[1,8]
[1,2]
[2,1]
Adendum:
Ya, set sudah diperbaiki 1..8
. Set bukan bagian dari input. Input hanya N .
Ya, Anda dapat menggunakan formulir input alternatif.
Semua output yang diharapkan untuk semua N : https://tio.run/##SyotykktLixN/f/fyNS02qIoP8soJd1CwSAg2kY32LPWPaoqs7jg/38A
1
untuk8
, atau set?"123"
itu akan tidak ambigu. Apakah ini validJawaban:
Jelly , 3 byte
Cobalah online!
Bagaimana itu bekerja
sumber
R ,
5226 byteCobalah online!
Mengonversi input menjadi bit-bitnya dan mengembalikan indeks berbasis 1 di mana mereka berada
TRUE
. Ini membuat port jawaban Dennis 'Jelly .Pengembalian
integer(0)
, daftar bilangan bulat kosong, untuk input0
.sumber
Python 2 , 40 byte
Cobalah online!
sumber
Perl 6 , 33 byte
Cobalah online!
sumber
Python 2 , 42 byte
Cobalah online!
sumber
K4 , 7 byte
Larutan:
Contoh:
10 pertama ...
Penjelasan:
sumber
MATLAB / Oktaf ,
312927 byteberkurang 2 byte berkat alephalpha
berkurang 2 byte berkat Giuseppe
Cobalah online!
sumber
@(n)9-find(dec2bin(n,8)-48)
Japt, 7 byte
Cobalah
Cobalah
sumber
Sekam , 5 byte
Mengambil input sebagai argumen baris perintah bukan pada stdin ( saya harap ini ok ), coba online!
Penjelasan
sumber
Haskell ,
5554 byteKeluarkan set dalam urutan terbalik, coba online!
Versi umum, 56 byte
Cobalah online!
Penjelasan
Istilah
mapM (pure [0,1]) [1..n]
menghasilkan daftar (n=4
)[[0,0,0,0],[0,0,0,1],[0,0,1,0],..,[1,1,1,1]]
- yaitu. representasi biner dari[0..2^n-1]
. Mengindeks ke dalamnya dengann
memberi kita representasi biner darin
.Sekarang kita bisa hanya
zip
dengan angka terbalik[1..n]
dan hanya menyimpan elemen-elemen di mana biner-digit bukan nol:sumber
Arang , 11 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Jika mencetak jawaban secara horizontal tanpa spasi dapat diterima maka karakter pertama dapat dihapus. Penjelasan:
sumber
JavaScript (ES6), 37 byte
+4 byte jika pemisah wajib
+3 byte jika pemisah ini koma dan koma utama dibolehkan
Cobalah online!
sumber
Perl 6 , 21 byte
Cobalah online!
Alternatif:
sumber
Gangguan Umum, 57 byte
Cobalah online!
sumber
Haskell , 33 byte
Cobalah online!
37 byte
Cobalah online!
Uji kasus dari nimi.
sumber
J ,
1310 byteCobalah online!
sumber
Japt, 7 byte
Uji secara online
Japt, 7 byte
Uji secara online
sumber
C # (Visual C # Interactive Compiler) , 47 byte
Cobalah online!
Tampak mirip dengan solusi Java sekarang, meskipun saya datang dengan milik saya secara mandiri.
sumber
Python 3.6, 58 byte
sumber
Bahasa Wolfram (Mathematica) , 32 byte
Cobalah online!
sumber
Pari / GP , 31 byte
Cobalah online!
sumber
APL + WIN, 13 byte
Anjuran untuk N:
Cobalah online! Atas perkenan Dyalog Classic
Penjelasan:
Mengembalikan subset dalam urutan terbalik
sumber
Burlesque - 8 byte
Cobalah online.
sumber
Oracle SQL, 77 byte
Tes dalam SQL Plus
sumber
MathGolf , 8 byte
Cobalah online!
Penjelasan
Format keluaran alternatif
Dengan format output yang lebih fleksibel (yang menurut saya pribadi terlihat cukup bagus) saya dapat menghasilkan 6-byter:
Alih-alih memetakan, saya menggunakan implisit untuk masing-masing, dan saya melewatkan perataan. Output terlihat seperti ini:
sumber
Ruby , 31 byte
Cobalah online!
sumber
F # (Mono) , 45 byte
Cobalah online!
Saya juga menerapkan fungsi generik / rekursif, tetapi sangat jelek dan jumlah byte jauh lebih besar ...
F # (Mono) , 107 byte
Cobalah online!
sumber
05AB1E , 6 byte
Cobalah secara online atau verifikasi semua kemungkinan kasus pengujian .
Penjelasan:
sumber
Java 8, 58 byte
Cobalah online.
Penjelasan:
sumber