Sekitar setahun yang lalu pada tanggal 31 Desember 2015, saya memiliki ide bahwa:
Doorknob dengan anggun mengumpulkan karakter dari komunitas PPCG dan menjaganya tetap aman selama setahun.
Sebanyak 74 orang berpartisipasi sehingga kami memiliki 74 karakter ASCII yang dapat dicetak untuk dimainkan!
Berikut adalah 74 karakter string kapsul waktu 2016 sesuai urutan pengirimannya:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Berikut adalah 74 karakter string kapsul waktu 2016 dalam urutan ASCII (catatan ruang terdepan):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
Ini tidak banyak untuk dikerjakan, tetapi di sini kami menyukai tantangan.
Tantangan
Untuk menentukan bahasa apa yang "terbaik" dengan string kapsul waktu, kami akan memiliki 6 (untuk 201 6 ) tantangan yang meningkat dalam kesulitan di mana pada masing-masing Anda harus menggunakan subset dari 74 karakter kapsul waktu.
Memiliki 6 tantangan berbeda membantu memastikan lebih banyak bahasa dapat bersaing, tetapi hanya bahasa terbaik yang dapat menjawab semuanya dan mendapat skor tinggi.
Mencetak:
- Setiap tantangan akan dinilai dari 0 hingga 74 tergantung pada berapa banyak karakter yang digunakan.
- Skor yang lebih tinggi lebih baik.
- Jika bahasa Anda tidak dapat menyelesaikan tantangan, skor Anda untuk tantangan itu adalah 0.
- Setiap subset nonempty dari tantangan dapat diselesaikan.
- Skor akhir Anda adalah jumlah skor dari semua 6 tantangan.
- Skor akhir terbaik adalah 6 × 74 atau 444 .
Tantangan
1. Jalankan
Jika kode bahasa tidak dapat dijalankan, kode bahasa tidak akan bisa melakukan apa pun.
Tulis program penuh terpanjang yang mungkin (ingat, hanya 74 karakter kapsul waktu) yang berjalan / dijalankan tanpa kesalahan waktu kompilasi atau runtime.
Tidak masalah apa yang dilakukan oleh program, tidak masalah apakah ia memiliki input / output atau memasuki loop tak terbatas, itu hanya masalah bahwa ia berjalan tanpa kesalahan. (Peringatan ok, seperti juga kesalahan yang disebabkan oleh input pengguna yang buruk.)
Komentar diperbolehkan, jadi ini bisa sesederhana
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
dalam Python untuk skor 74.
(Jangan takut untuk menjawab jika ini adalah satu-satunya tantangan yang dapat diselesaikan oleh bahasa Anda, tetapi jangan berharap banyak suara juga.)
Nilai = panjang program (program lebih lama lebih baik)
2. I / O
Bahasa yang tidak memiliki bentuk input atau output hampir sama tidak bergunanya dengan yang tidak bisa dijalankan.
Diberikan karakter ASCII yang dapat dicetak dari !
(0x33) hingga }
(0x7D) inklusif, mengeluarkan karakter ASCII yang dapat dicetak sebelum dan sesudahnya.
Outputnya bisa panjang dua string atau daftar, atau karakter dipisahkan oleh spasi atau baris baru.
Misalnya jika inputnya adalah }
output mungkin |~
atau ["|", "~"]
atau | ~
atau |\n~
.
Demikian juga, "
adalah output untuk !
dan AC
output untuk B
.
Nilai = 74 - panjang program (program pendek lebih baik)
3. Branchability
Persyaratan sering merupakan persyaratan untuk kelengkapan Turing , yang seringkali merupakan persyaratan agar suatu bahasa bermanfaat.
Diberikan bilangan bulat positif, jika berakhir dengan angka desimal 16
maka ubah 6
ke a 7
dan hasilkan hasilnya; jika tidak, output input tidak berubah. Anda dapat menggunakan string untuk input / output jika diinginkan.
Contoh:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Nilai = 74 - panjang program (program pendek lebih baik)
4. Loopability
Bahasa yang tidak dapat melakukan loop akan menelurkan kode yang berulang sehingga Anda perlu istirahat sejenak untuk pemrograman.
Dengan bilangan bulat positif, mengeluarkan persegi ASCII-art dengan panjang sisi yang diisi dengan pola kotak kecil yang konsentris yang bergantian antara dua karakter ASCII yang dapat dicetak yang berbeda . Mereka tidak harus dua karakter yang sama untuk input yang berbeda.
Sebagai contoh:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Nilai = 74 - panjang program (program pendek lebih baik)
5. Matematika
Bahasa yang tidak bagus dengan angka dan matematika mungkin juga untuk jurusan humaniora.
Tidak mengambil input tetapi output 72 pembagi integer 2016 , positif dan negatif, dalam urutan apa pun. Output dapat diformat sebagai string atau daftar dengan cara yang masuk akal.
Contoh:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Nilai = 74 - panjang program (program pendek lebih baik)
6. Esoterisme
(Tidak, bukan itu .) Kami di PPCG menyukai barang-barang esoterik kami , dan quines adalah contoh yang bagus untuk itu.
Tuliskan quine terpanjang yang Anda bisa, sesuai aturan quine yang biasa . Quine adalah program yang tidak mengambil input dan output sendiri.
Nilai = panjang program (program lebih lama lebih baik)
Aturan khusus
- Di masing-masing dari 6 tantangan program Anda harus menjadi bagian dari 74 karakter kapsul waktu yang disusun ulang sesuka Anda. Ini mungkin subset kosong atau subset yang tidak tepat , sehingga setiap program Anda dapat memiliki sedikitnya 0 dan sebanyak 74 karakter.
- Satu baris baru di akhir input / output / kode tidak masalah di mana saja karena beberapa bahasa memerlukan ini atau tidak dapat dengan mudah dihindari.
- Kecuali ditentukan lain, setiap tantangan dapat diselesaikan sebagai fungsi atau program lengkap sesuai dengan standar kami .
- Semua tantangan harus diselesaikan dalam bahasa yang sama.
- Anda harus menggunakan bahasa (atau versi bahasa) yang dibuat sebelum 2017 di mana pun di Bumi .
- Siapa pun boleh menjawab, apakah Anda menambahkan karakter ke kapsul waktu atau tidak.
Jangan ragu untuk menggunakan karakter kapsul waktu 2016 dalam tantangan Anda sendiri.
6×74 or 444
tidak mungkin, karena itu berarti program kosong, yang entah bagaimana berperilaku berbeda. karenanya, 442 adalah minimum sebenarnya, karena itu berarti bahwa dua dari 3 program pengambilan input memiliki arang di dalamnya