Ada 40 cara jalur Hamiltonian terarah dapat diatur pada kisi 3 × 3:
Grafik ini ( terima kasih Sp3000! ) Hanya menampilkan 20 jalur yang tidak diarahkan. Lintasi setiap garis berwarna di kedua arah untuk 40 jalur yang diarahkan.
Tantangan
Hanya menggunakan ASCII yang dapat dicetak , tulis kisi-kisi karakter 3 × 3, seperti:
ABC
DEF
GHI
Ketika masing-masing dari 40 jalur diarahkan dibaca dari kisi ini sebagai 40 baris tunggal, program 9-karakter, tujuannya adalah agar setiap program menghasilkan bilangan bulat unik dari 1 hingga 40. Melakukan ini untuk semua 40 jalur tampaknya sulit dan tidak mungkin, jadi Anda hanya perlu membuatnya bekerja untuk jalur sebanyak mungkin.
Kiriman yang program jalur 40-nya menampilkan angka paling berbeda dari 1 hingga 40 akan menjadi pemenang. Tiebreaker pergi ke pengiriman sebelumnya.
Program jalur yang kesalahan atau tidak menghasilkan bilangan bulat dari 1 hingga 40 atau menghasilkan bilangan bulat yang sudah dicakup program jalur lain tidak dihitung. Secara khusus:
- Program yang kesalahan saat mengkompilasi, menjalankan, atau keluar tidak dihitung. Peringatan tidak apa-apa.
- Program yang tidak menghasilkan bilangan bulat dari 1 hingga 40 atau menghasilkan sesuatu yang sedikit cacat seperti
-35
atau35 36
tidak dihitung. - Program yang membutuhkan input pengguna untuk menghasilkan output tidak dihitung.
- Program yang tidak pernah berakhir tidak dihitung.
- Mulai sekarang , program yang tidak deterministik tidak dihitung.
- Jika tidak, program-program yang valid yang menghasilkan bilangan bulat dari 1 hingga 40 yang tidak pernah dihitung oleh program lain yang valid. (Program pertama adalah dihitung.)
- Hanya program yang menampilkan representasi bilangan bulat dari 1 hingga 40 (inklusif) yang dihitung terhadap total Anda. Jumlahnya diperkirakan berada di biasa
1
,2
, ...,39
,40
Format, kecuali yang tidak norma untuk bahasa Anda. (Baris baru yang tertinggal di output baik-baik saja.) - Angka mana yang dihasilkan oleh program Anda dan urutannya tidak penting. Hanya jumlah bilangan bulat yang berbeda dari program yang valid yang penting.
Semua program jalur harus dijalankan dalam bahasa yang sama. Namun, "program" mungkin sebenarnya adalah fungsi (tanpa argumen yang diperlukan) atau perintah REPL , serta program lengkap, yang mencetak atau mengembalikan target integer mereka. Anda dapat mencampur dan mencocokkan antara fungsi, perintah REPL, dan program lengkap.
9 karakter ASCII Anda yang dapat dicetak tidak perlu berbeda.
Contoh
Jika kisi 3 × 3 Anda adalah
ABC
DEF
GHI
dan 40 program dan output Anda terlihat seperti ini
ABCFEDGHI -> 26
ABCFIHEDG -> 90
ABCFIHGDE -> 2
ABEDGHIFC -> syntax error
ADEBCFIHG -> prints 40 but then errors
ADGHEBCFI -> 6
ADGHIFCBE -> 6
ADGHIFEBC -> 6
CBADEFIHG -> runtime error
CBADGHEFI -> 3
CBADGHIFE -> 4
CFEBADGHI -> -32
CFIHEBADG -> 38.0
CFIHGDABE -> "36"
EDABCFIHG -> 33
EFCBADGHI -> no output
EHGDABCFI -> compilation error
EHIFCBADG -> 8
GDABCFEHI -> 22
GHEDABCFI -> 41
IHGDEFCBA -> 0
GDEHIFCBA -> '9'
EDGHIFCBA -> +10
CFIHGDEBA -> 11
GHIFCBEDA -> error
IFCBEHGDA -> error
EBCFIHGDA -> prints 23 but then loops infinitely
CBEFIHGDA -> randomly prints either 24 or 44
GHIFEDABC -> error
IFEHGDABC -> 30
EFIHGDABC -> 39
IHGDABEFC -> 7
GDABEHIFC -> 29
EBADGHIFC -> -1
GHIFCBADE -> 26
IHGDABCFE -> 1
IFCBADGHE -> error
GDABCFIHE -> no output
IHEFCBADG -> no output
IFCBADEHG -> "quack"
skor Anda akan menjadi 14, karena ada 14 bilangan bulat yang berbeda dari 1 hingga 40 output yang valid, yaitu 26 2 6 3 4 33 8 22 11 30 39 7 29 1
.
123654789