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.
sumber
4
cuplikan yang valid yang mengembalikan 4, dalam versi Perl yang lebih lama yang tidak memiliki REPL?)07
sama dengan7
?-
ataun
...Jawaban:
CJam , 25 snippet, 12 wildcard, 64 byte
Cobalah online!
Wildcard:
Saya merasa bahwa saya harus memposting dengan cepat, sebelum Dennis mengalahkan saya.
sumber
CJam , 23 snippet, 11 wildcard, 45 byte
Cobalah online! | penghitung wildcard (abaikan baris baru)
sumber
JavaScript, 10 angka, 5 wildcard
Karakter yang tersisa:
!!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~
5/5 karakter bonus yang digunakan:
37680
Program:
1
3
4
4|!``
6
7
8
9
0xA
Saya berharap salah satu string yang bisa saya gunakan
\xAB
adalah angka, tetapi sayangnya tidak ada kombinasi yang saya coba akan menghasilkan. Karakter^
(XOR) juga akan menarik untuk digunakan, tetapi saat ini saya tidak melihat peluang di mana ia dapat digunakan untuk membuat angka yang cukup besar.Jika Anda melihat kombinasi yang layak lainnya, beri tahu saya di komentar.
Sunting: Ditambahkan # 10 terima kasih kepada Arnauld
sumber
10. 0xA
(dengan0
menjadi wildcard baru yang diberikan untuk mencapai 10)(Q=!``)|Q
untuk 1 untuk mendapatkan tempat tambahan1
. Tidak yakin apakah itu akan membantuPyth, 12 snippet, 20 byte (6 wildcard)
Temukan nomor pertama di mana root (n, n) benar, mulai dari 1. Output: 1
Gandakan tidak
{}
. Output: 2Wildcard # 1. Output: 3
Output: 4.
Wildcard # 2. Output: 5
Wildcard # 3. Output: 6
Wildcard # 4. Output: 7
Wildcard # 5. Output: 8
Output: 9
Variabel yang diinisialisasi. Output: 10
Sepuluh ditambah bukan nol. Output: 11
Wildcard # 6 (
2
). Output: 12sumber
Oktaf, 6 angka, 3 wildcard
Saya masih punya
1
,9
dan*
pergi, tetapi saya tidak tahu apakah itu akan banyak membantu saya. Saya akan melihat apa yang bisa saya lakukan dengan itu :)Tidak mudah mendapatkan banyak angka saat tidak menggunakan Esolang. Saya berharap saya bisa mendapatkan satu atau dua lagi, tetapi saya pikir itu akan sulit.
sumber
Pushy , 10 angka (4 wildcard)
Semua ini adalah cuplikan yang meninggalkan hasilnya di tumpukan. Anda dapat menguji ini di juru bahasa online dengan menambahkan
#
ke setiap potongan (untuk mencetak nomor)Jawaban ini belum lengkap - walaupun sepertinya tidak mungkin saya akan mendapatkan lebih jauh.
sumber
05AB1E, 12 angka, 6 wildcard
sumber
Hexagony , 6 angka, 3 wildcard, 23 byte
Cobalah online!
Seluruh program keenam terbuat dari wildcard.
Satu-satunya yang sangat menarik adalah
3
. Sementara saya bisa melakukan itu sebagai4(!@
, itu akan meninggalkan saya tanpa4
menghasilkan5
dengan mudah, jadi saya pergi dengan ini sebagai gantinya:Karena itu
|
,)
pada baris pertama dijalankan dua kali, sebelum IP membungkus ke sudut kanan.$
melompati@
, dan kemudian\
mengalihkan IP melalui yang)
ketiga kalinya. IP membungkus ke sudut kiri bawah,!
mencetak3
dan@
mengakhiri program.Saya tidak berpikir lebih dari 6 snippet dimungkinkan, karena hanya ada 5 perintah pencetakan (
!!!!!
) dan 5 perintah yang dapat digunakan untuk mengakhiri program (@@@%:
). Jadi, setelah cuplikan kelima, kami membutuhkan setidaknya dua wildcard per cuplikan. Oleh karena itu, bahkan jika saya berhasil mendapatkannya6
tanpa menggunakan wildcard untuk itu, tidak akan ada cukup wildcard yang tersisa untuk pergi ke potongan tujuh.sumber
JavaScript, 8 angka, 4 wildcard
Saya mungkin mencoba lagi nanti - saya agak membuang-buang karakter pada 2 dan 6, ketika Anda sampai ke sana.
sumber
Befunge-98, 4 snippet, 18 byte, 2 wildcard
Karakter tersisa:
!!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~
Saya ragu lebih banyak yang mungkin, karena setiap program tambahan akan membutuhkan bentuk output, dan semua
.,
sudah habis. Jika saya dapat menemukan cara untuk membuat 3 dan 5 tanpa wildcard, maka itu mungkin.Program terakhir pada akhirnya akan berakhir karena pengisian tumpukan.
A
danH
tanpa sidik jari yang dimuat akan mencerminkan, dan program akan terus mendorong angka 9.sumber
%
.00%
valid di Befunge-98 dan menghasilkan 0 (atau meminta pengguna untuk hasilnya di Befunge-93.{
dapat membalikkan jika kehabisan memori; tidak ada yang dikatakan tentang dorongan normal, dan semua penerjemah tampaknya gagal pada OOM, tetapi jelas batas memori dipikirkan dalam spesifikasi bahasa.p
karakter, tetapi akan membutuhkan beberapa pekerjaan. Anda bisa melakukannyae%9
untuk mendapatkan 5, tetapi Anda akan membutuhkan cara untuk mencetak dan mengakhiri program, jadi saya raguSmileBASIC, 12 snippet, 5 wildcard, 31 byte
Saya juga bisa menggunakan variabel alih-alih
.
(variabel mulai dari 0), dan variabel string (sepertiQ$
) alih-alih@Q
Karakter yang digunakan:
!!!#&*+...1449@AHILQQTem||
Wildcard digunakan:
67813
karakter yang tidak digunakan:
!!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~
sumber