Menggunakan 74 karakter dari string kapsul waktu 2016
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
tuliskan potongan kode N semua dalam bahasa yang sama di mana:
- Output potongan pertama
1
. - Output potongan ke-2
2
. - Output potongan ke-3
3
. - ... dll ...
- Potongan Nth menghasilkan
N
(jumlah, bukan huruf literal).
"Cuplikan kode" didefinisikan sebagai salah satu dari ini:
- Program lengkap tanpa input yang diperlukan yang menampilkan nomor secara normal .
- Sebuah fungsi tanpa argumen yang diperlukan yang menampilkan / mengembalikan nomor secara normal .
- Sebuah repl ekspresi yang mengevaluasi ke nomor tersebut.
(Anda dapat mencampur dan mencocokkan ketiga varian ini dalam cuplikan N. Anda.)
Karakter yang diizinkan untuk Anda gunakan dalam kumpulan snippet N yang dikombinasikan adalah 74 karakter kapsul waktu, ditambah floor(N/2)
byte "wildcard" tambahan yang dapat Anda gunakan di mana saja.
Misalnya, kapsul waktu berisi tiga @
sehingga keseluruhan potongan N Anda hanya mungkin ada hingga tiga @
, kecuali jika Anda memutuskan untuk menggunakan beberapa floor(N/2)
byte wildcard Anda untuk tambahan @
.
Dengan demikian, tanpa menghitung wildcard, rangkaian karakter gabungan dalam cuplikan N Anda harus merupakan subset dari 74 karakter kapsul waktu. Panjang gabungannya tidak boleh melebihi 74. Anda tidak boleh menggunakan kembali karakter kapsul waktu atau byte wildcard di antara potongan.
Catatan
Tidak ada batasan lain pada panjang cuplikan atau berapa banyak wildcard yang dapat digunakan per cuplikan.
Anda harus menulis semua cuplikan untuk 1 hingga N. Ini bukan 0 hingga N-1, bukan k ke N + k-1.
Cuplikan harus individual, bukan satu cuplikan yang menampilkan daftar
1, 2, 3, ..., N
.Output mungkin mengapung seperti
3.0
di tempat3
dan Anda dapat menggunakan basis selain desimal jika itu adalah basis alami bahasa Anda . Anda harus menggunakan pangkalan yang sama untuk semua cuplikan.Wildcard dihitung sebagai byte dalam penyandian bahasa Anda . Ini mungkin akan menjadi ASCII tetapi misalnya jika
∞
dihitung sebagai satu byte dalam pengkodean Anda, maka Anda dapat menggunakannya sebagai byte wildcard tunggal.Anda dapat menggunakan byte wildcard untuk karakter multibyte. misalnya
∞
adalah biasanya tiga byte sehingga Anda bisa menggunakannya dalam potongan tetapi akan dikenakan biaya tiga dari Andafloor(N/2)
byte wildcard.Baris baru seperti
\r\n
dapat dianggap satu byte.
Contoh
Dalam Python, N = 4 dimungkinkan hanya menggunakan REPL. Ada floor(4/2) = 2
wildcard.
1
dari kapsul waktu adalah ekspresi yang dihindari1
.2
terdiri dari satu wildcard, yaitu2
. Evals to2
.3
juga terdiri dari satu wildcard. Evals to3
. Tidak ada lagi wildcard.4
untungnya ada dalam kapsul waktu dan itu berlaku untuk4
.
Cuplikan ini pendek dan sepele. Sebuah jawaban nyata kemungkinan akan jauh lebih kompleks.
(Lima dan lebih dalam Python tentu saja mungkin tetapi saya akan menyerahkannya kepada para profesional.)
Mencetak gol
Jawaban dengan N tertinggi menang; yaitu salah satu yang naik tangga integer yang tertinggi.
Dalam kasus seri, jawaban yang menggunakan byte wildcard paling sedikit menang.
Jika masih ada seri, jawaban yang menggunakan karakter kumulatif paling sedikit menang.
Jika masih ada seri, jawaban sebelumnya menang.
07
sama dengan 7
?
-
atau n
...
4
cuplikan yang valid yang mengembalikan 4, dalam versi Perl yang lebih lama yang tidak memiliki REPL?)