Tambang garam Polandia tertua , yang terletak di Bochnia *, dimulai pada tahun 1248, yang dapat kita anggap sebagai angka ajaib . Kita bisa melihat bahwa itu sama dengan 4 digit dari urutan eksponensial: .
Karena tanggal sebenarnya 4 digit dari urutan, kita bisa membuatnya lebih lama. Kita bisa mengulangi prosesnya sampai kita mencapai tak terbatas. Urutannya akan terlihat seperti ini, jika kita batasi jumlahnya2048
124816326412825651210242048
Agar terlihat sedikit lebih baik, kita dapat memisahkan angka:
1|2|4|8|16|32|64|128|256|512|1024|2048
Mari kita coba urutan khusus yang lebih panjang dari tanggal. Katakanlah, kami ingin memiliki 5 digit - ada lebih dari satu kemungkinan:
24816
81632
64128
Atau 3 digit:
124
248
816
Kita juga bisa menambahkan angka 3 digit ini, tetapi katakanlah, bahwa suatu urutan harus memiliki setidaknya dua angka .
* Tidak ada informasi tentang ini di Wikipedia bahasa Inggris. Jika Anda memasukkan versi Polandia - maka ada. Jika Anda mengunjungi tambang, para pekerja juga akan memberi tahu Anda, bahwa itu dimulai pada 1248.
Tantangan
Buat urutan eksponensial seperti pada contoh di atas dengan 2 sebagai dasarnya.
Diberi angka dari rentang 2-27, output semua bagian yang mungkin dari urutan (2048 satu atau lebih besar jika Anda mau) dengan jumlah digit yang sama dengan input. Anda tidak dapat memotong angka, jadi hasilnya seperti481
tidak valid, karena 16 dipotong setengah.
Aturan:
- Celah standar dilarang.
- Anda dapat berasumsi bahwa input adalah angka di dalam rentang.
- Program Anda dapat menerima input yang lebih besar dari kisaran (28+), tetapi itu tidak akan menambah / menurunkan skor.
- Spasi dalam output diabaikan. Anda dapat menampilkan suka
124
atau suka4 8 16
. - Kemungkinan yang berbeda harus dipisahkan oleh karakter apa pun dari daftar:
,./|
atau umpan baris. - Anda dapat menampilkan sebagai array.
- Setiap kemungkinan harus menyertakan setidaknya 2 nomor yang berbeda .
- Anda harus menampilkan bagian dari urutan, Anda tidak dapat mencampur angka yang tidak bersebelahan, seperti:
14
. - Output hardcoded tidak diizinkan, namun, Anda dapat membuat hardcode string / angka / array yang berisi urutan penuh.
- Input 27 harus mengembalikan urutan 2048 penuh.
- Seperti yang sudah disebutkan sebelumnya, jangan potong angka . Ex.
16
harus tetap16
- Anda tidak dapat menggunakan481
- Anda harus menggunakan4816
. - EDIT: Saya mungkin mengatakan sesuatu yang salah di sana; 2048 adalah angka terakhir yang harus didukung oleh program Anda, Anda dapat menambahkan dukungan untuk int yang lebih besar.
Uji kasus
Memasukkan: 2
12, 24, 48
Memasukkan: 3
124, 248, 816
Memasukkan: 4
1248, 4816, 1632, 3264
Memasukkan: 5
24816, 81632, 64128
Memasukkan: 27
124816326412825651210242048
Dan kemudian angka ...
Jika saya membuat kesalahan dalam salah satu kasus uji, katakan padaku atau edit pertanyaannya.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
sumber
Jawaban:
05AB1E ,
121110 byteMendukung urutan hingga
2^95 = 39614081257132168796771975168
Cobalah online!
Penjelasan
Disimpan 1 byte berkat Erik the Outgolfer
Tersimpan 1 byte berkat Riley
sumber
X›
bisa≠
Y₃Ým
menjadi₃Ýo
?Pyth,
22212017 byteCobalah secara Online
Penjelasan
sumber
fqQlTmjkdftlT.:m^2d12
fqQlTjLkftlT.:m^2d12
Jelly ,
19 1816 byteMungkin ada solusi yang lebih pendek sekarang bahwa kita dapat menggunakan cut-off apa pun (tidak hanya 2048), meskipun perubahan pada spesifikasi ini memungkinkan penghematan satu byte dari implementasi ini dengan beralih ke cut-off 32768. -
ya. ..
-2 bytes terima kasih kepada Erik the Outgolfer (penggunaan
V
untuk memungkinkan argumen benar implisit dari filter dan pengetatan) -ya itu sangat mirip dengan yang tidak efisien sekarang; pergi upvote-nya !
Tautan monadik yang mengambil nomor dan mengembalikan daftar nomor.
Cobalah online!
Bagaimana?
sumber
V
dan itu akan bekerja selama 16 daripada 1000:⁴Ḷ2*Ẇṫ17VDL$⁼¥Ðf
.Perl 6 ,
6259 byteCobalah online!
sumber
Japt ,
22201916 byteMendukung input hingga
639
tetapi kesenjangan mulai muncul dalam urutan setelahnya234
(Lihat daftar lengkap rentang input yang didukung di sini ). Menghasilkan array string.Menguji
I
(64) dapat diganti denganL
(100) tetapi kita akan masuk ke notasi ilmiah dan ketidakakuratan presisi. Memfilternya akan meningkatkan jumlah byte dan hanya meningkatkan input maksimum736
.sumber
Python 2 , 105 byte
Cobalah online!
sumber
Sekam ,
1817 byteOutput dipisahkan oleh baris baru
Cobalah online!
Bagaimana?
sumber
Jelly , 16 byte
Cobalah online!
Catatan: sangat tidak efisien. Mengembalikan daftar angka.
sumber
ȷ
s (yaitu1000
) dengan20
s (batas atas bawah) .[12, 24, 48]
.JavaScript (ES7),
102100 byteMencetak semua sub-urutan yang cocok dengan
alert()
.Demo
NB : Potongan ini buffering hasil dan mencetaknya ke konsol untuk ramah pengguna.
Tampilkan cuplikan kode
sumber
Haskell ,
7267 byteCobalah online!
Disimpan 5 byte berkat Laikoni
Saya menggunakan batas
99
karena2^99
memiliki panjang> 27
.sumber
length$(show$2^44)++(show$2^45)==28
.Mathematica, 122 byte
Memasukkan
Keluaran
sumber
C, 170 byte
Cobalah online!
Belum dibuka:
sumber
R , 99 byte
Cobalah online!
sumber
Perl 5 , 76 byte
75 byte kode +1 untuk
-a
Cobalah online!
sumber
Japt, 24 byte
Setelah beberapa lama sejak memposting pertanyaan ini, saya belajar bahasa golf pertama saya. Karena ini, saya memutuskan untuk mencoba keberuntungan saya di sini.
Cobalah online!
Skornya bukan yang terbaik, bahkan tidak baik, tetapi butuh banyak waktu untuk melakukan ini .-.
Saya kehilangan banyak skor, karena untuk beberapa alasan, ã hanya dapat mengembalikan array panjang x ... Bisa jadi bahkan ~ 10 byte, jika tidak.
Penjelasan:
sumber
Ruby , 94 byte
Cobalah online!
sumber