Formula Referensi-Mandiri Tupper (disalin dari Wikipedia)
Rumus referensial-sendiri Tupper adalah rumus yang didefinisikan oleh Jeff Tupper bahwa, ketika digambarkan dalam dua dimensi di lokasi yang sangat spesifik di pesawat, dapat "diprogram" untuk mereproduksi rumus itu sendiri secara visual. Ini digunakan dalam berbagai kursus matematika dan ilmu komputer sebagai latihan dalam membuat grafik.
Di mana fungsi lantai.
Biarkan k
menjadi nomor 543 digit berikut:
960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719
Jika salah satu grafik himpunan titik-titik (x, y)
di 0 <= x < 106
dan k <= y < k + 17
memuaskan ketimpangan yang diberikan di atas, grafik penampilan yang dihasilkan seperti ini (catatan bahwa sumbu di plot ini telah terbalik, jika gambar keluar terbalik):
Terus?
Yang menarik dari rumus ini adalah dapat digunakan untuk membuat grafik gambar 106x17 hitam putih yang mungkin. Sekarang, benar-benar mencari melalui pencarian akan sangat membosankan, jadi ada cara untuk mengetahui nilai k di mana gambar Anda muncul. Prosesnya cukup sederhana:
- Mulai dari piksel bawah kolom pertama gambar Anda.
- Jika pikselnya putih, angka 0 akan ditambahkan ke nilai-k. Jika berwarna hitam, tambahkan 1.
- Pindah ke atas kolom, ulangi langkah 2.
- Setelah di akhir kolom, pindah ke kolom berikutnya dan mulai dari bawah, mengikuti proses yang sama.
- Setelah setiap piksel dianalisis, konversikan string biner ini menjadi desimal, dan kalikan dengan 17 untuk mendapatkan nilai k.
Apa pekerjaan saya?
Tugas Anda adalah membuat program yang dapat mengambil gambar 106x17 apa pun, dan menampilkan nilai-k yang sesuai. Anda dapat membuat asumsi berikut:
- Semua gambar akan berukuran 106x17
- Semua gambar hanya akan mengandung piksel hitam (# 000000) atau putih (#FFFFFF), tidak ada di antaranya.
Ada beberapa aturan juga:
- Output hanyalah nilai-k. Itu harus di dasar yang tepat, tetapi bisa dalam format apa pun.
- Gambar harus dibaca dari PNG atau PPM.
- Tidak ada celah standar.
Gambar Uji
[ ] harus menghasilkan ~ 1,4946x10 542
[ ] harus menghasilkan ~ 7.2355x10 159
[ ] harus menghasilkan 2 1801 * 17
[ ] harus menghasilkan (2 1802 -1) * 17
Lihat Intisari ini untuk solusi yang tepat.
Ini adalah kode-golf , jadi paling tidak jumlah byte yang menang.
Tautan Bermanfaat
quine
suatu tempat.