Ukuran misteri bulan
Saya yakin Anda pernah mendengar bahwa bulan mengubah ukurannya. Ketika Anda sedang jatuh cinta dan Anda beruntung, ukuran bulan hampir dua kali lipat dibandingkan dengan situasi normal. Sebagian orang mengatakan alasannya adalah suasana yang bertindak sebagai lensa. Yang lain berpikir bahwa itu hanya masalah perbandingan dengan benda lain seperti pohon di dekatnya. Apapun penjelasan yang Anda baca, itu cukup subjektif.
Ukuran ilmu bulan
Ok, kita programmer, bukan? Kami mengandalkan fakta, bukan? Jadi inilah eksperimennya:
- Ambil kamera yang bagus yang mendukung pengaturan waktu dan bukaan secara manual.
- Setel kamera Anda ke level zoom maksimum.
- Pergi keluar, ambil beberapa foto bulan untuk mendeteksi pengaturan terbaik sehingga bulan tajam dan pencahayaan baik-baik saja.
- Ingat pengaturannya
- Ambil foto bulan dengan pengaturan itu setiap kali Anda berpikir bulan besar atau kecil.
- Hitung ukuran bulan dalam piksel
Kamera tidak akan berbohong, bukan? Dengan menghitung piksel cerah kita dapat secara efektif mengukur ukuran bulan - setidaknya dalam piksel.
Jika ukurannya sama di semua foto, maka itu adalah bug di otak kita. Jika ukurannya berbeda, maka ada ruang untuk spekulasi
- bulan benar-benar tumbuh (tetapi apa yang dimakannya?)
- ada efek lensa atmosfer
- bulan memiliki kurva elips dan kadang lebih dekat, kadang jauh dari bumi
- ...
Tapi saya akan membiarkannya terbuka sampai tugas Anda selesai. Tentu saja Anda ingin tahu sebelumnya jika perangkat lunak Anda dapat menghitung ukuran bulan secara akurat.
Tugas
Diberikan beberapa gambar bulan yang dioptimalkan, harap hitung ukuran bulan. Optimasinya adalah: pikselnya hitam atau putih. Tidak ada di antara keduanya. Tidak ada antialiasing. Itu membuatnya mudah, bukan?
Peringatan: bulan tidak selalu penuh, Anda tahu ... itu bisa menjadi sabit! Tetapi bahkan dalam bentuk sabit, ukuran bulan lebih besar. Jadi, Anda akan menghitung ukuran penuh, silakan.
- Program Anda mengambil PNG sebagai input, misalnya sebagai argumen baris perintah nama file, disalurkan ke
stdinatau sebagai objek Bitmap (dari pustaka kerangka kerja standar) jika Anda menulis fungsi alih-alih program. - Program Anda bekerja dengan ukuran bitmap input yang masuk akal, tidak harus kuadrat. Lebar minimum dan tinggi 150 piksel dijamin.
- Bulan purnama mencakup setidaknya 25% dari gambar.
- Program Anda menampilkan ukuran bulan yang dihitung dalam piksel seolah-olah bulan purnama.
- Kami berasumsi bahwa bulan adalah bola yang sempurna.
- Ukuran pastinya selalu angka integer, tetapi Anda bisa menampilkan angka desimal jika kalkulasi Anda mengembalikannya.
- Akurasi harus antara 98% dan 102%. (Itu lebih merupakan dugaan daripada sesuatu yang dapat saya jamin untuk dapat dicapai. Jika Anda pikir itu terlalu sulit untuk dijangkau, silakan tinggalkan komentar.)
Perbarui :
- Pusat bulan tidak harus di tengah-tengah gambar.
- Daerah minimum yang terlihat adalah 5% dari bulan atau 1,25% dari total jumlah piksel.
- Gambar diambil sedemikian rupa sehingga seluruh bulan akan sesuai dengan gambar, yaitu jumlah total piksel adalah batas atas untuk ukuran bulan.
- Bulan tidak akan dipotong / dipotong.
Sampel
Anda dapat membuat sampel sendiri menggunakan file campuran jika diinginkan. Saya telah membuat gambar-gambar berikut untuk Anda. Anda dapat menghitung piksel dalam file PNG menggunakan WhitePixelCounter.exe (perlu .NET) untuk memeriksa apakah gambar tersebut hanya berisi piksel hitam putih saja dan berapa jumlahnya.
Gambar 256x256 piksel berikut berbeda dalam jumlah piksel putih, tetapi semua harus menghasilkan ukuran bulan terhitung 16416 piksel.

Dan gambar 177x177 piksel ini harus mengembalikan 10241 piksel. Gambar pada dasarnya sama, tetapi kali ini kamera dengan focal length berbeda digunakan.

Sampel non-square dan non-centered dengan hasil 9988:

Oh, saya tidak memiliki implementasi referensi untuk saat ini dan saya bahkan tidak tahu apakah saya bisa mengimplementasikan sesuatu. Tetapi di otak saya ada keyakinan kuat yang mengatakan bahwa itu harus dipecahkan secara matematis.
Aturan
Ini Golf Code. Kode terpendek pada 2015-03-30 diterima.



