Output adalah bentuk yang membungkus 1009 piksel.
- Bentuknya harus berbentuk loop tunggal, tertutup, tidak berpotongan.
Input adalah bilangan bulat positif bukan nol.
- Setiap input harus menghasilkan output yang unik - yaitu, setiap output harus unik dari yang dihasilkan menggunakan input yang lebih rendah.
Kemenangan ditentukan oleh batas input terbesar:
- Batas input kiriman Anda dianggap 1 kurang dari input terendah yang menghasilkan output tidak unik atau tidak valid.
- Misalnya, jika output yang valid dan unik dihasilkan untuk input 1, 2 atau 3 tetapi tidak 4, batas input Anda adalah 3.
Ada batas 1009 byte pada kode sumber. Jika ada undian, entri dengan byte paling sedikit menang.
Batasan dan klarifikasi:
- Ukuran maksimum bentuk adalah 109 kali 109 piksel. Ukuran termasuk garis yang digunakan untuk menggambar bentuk.
- Garis adalah lebar konstan.
- Ruang tertutup harus seluruhnya tertutup oleh garis - Anda tidak dapat menggunakan batas file gambar.
- 1009 piksel terlampir hanya mengacu pada ruang tertutup. Itu tidak termasuk garis.
- Output adalah gambar.
- Tidak ada batasan grafis lebih lanjut - misalnya pada warna, ketebalan garis dll.
- Keunikan output hanya merujuk pada ruang tertutup. Perubahan pada garis atau perubahan grafis lainnya tidak relevan jika ruang tertutup tidak unik.
- Terjemahan bentuk tidak unik. Rotasi, refleksi, dan transformasi lainnya dianggap unik.
- Output harus dapat direproduksi - input yang sama akan selalu memberikan output yang sama
- Tidak perlu ada hubungan antara output, berturut-turut atau sebaliknya.
- Di luar 'batas input' kiriman tidak ada output yang ditentukan.
- Tidak ada input atau pengambilan data eksternal lainnya diizinkan.
- Garis harus kontinu - yaitu piksel harus menyentuh (menyentuh jumlah sudut).
- Piksel adalah unit terkecil dari 'gambar' yang digunakan oleh metode menggambar Anda, dan tidak akan selalu sesuai dengan piksel layar.
Contoh:
Berikut ini contoh bentuk yang valid:
Bentuk berikut tidak valid:
EDIT: Menyentuh garis:
- Ruang tertutup harus kontinu yang didefinisikan sebagai menyentuh piksel. Sudut yang menyentuh penting.
Sebuah garis tidak dapat melingkupi ruang di sisi luarnya. Gambar ini diposting oleh @Sparr menggambarkan titik ini - hanya bentuk pertama di setiap baris yang valid:
Sisi luar garis mungkin menyentuh, tetapi tidak dengan cara yang menutupi ruang.
- Garis yang menyentuh mungkin tidak tumpang tindih - mis. Dua garis tebal 1 pixel yang menyentuh akan memiliki ketebalan gabungan 2px, tidak pernah 1px.
Jawaban:
Python + Pycairo, 2 100 bentuk
Mari kita mulai dengan yang jelas.
Mengambil nomor pada baris perintah dan menulis
o.png
.sumber
Rotations [...] count as unique.
BBC Basic, skor 10 ^ 288 (minus 1 jika nol tidak dihitung)
Unduh interepreter di http://sourceforge.net/projects/napoleonbrandy/ (bukan penerjemah dasar BBC saya yang biasa, yang tidak mendukung string cukup lama.)
Untuk menyandikan banyak informasi, Anda memerlukan banyak perimeter. Itu artinya bentuknya tipis. Saya mulai dengan bilah vertikal 49 piksel di sebelah kiri, dan menambahkan sepuluh tentakel 96 piksel ke dalamnya. Setiap tentakel dapat mengkodekan 96 bit dengan cara yang mirip dengan solusi @ ell, total 960 bit.
Karena BBC Basic tidak dapat menangani angka yang besar, sejumlah hingga 288 angka desimal dimasukkan sebagai string, dan setiap rangkaian 3 angka desimal dikonversi ke angka biner 10-bit. Setiap bit kemudian digunakan untuk menggoyangkan salah satu dari tentakel dengan satu pixel jika itu adalah
1
(tetapi tidak jika itu adalah0
.) Program ini dapat menangani hingga 288/3 = 96 set 3 digit.Keluaran
Output khas untuk angka 288 digit. Perhatikan bahwa 999 adalah 1111100111 dalam biner. Anda dapat melihat bagaimana set 9 digit menyebabkan tentakel bergelombang.
Teknisnya
A. Jawaban untuk poin Martin 3 "adalah bentuk terhubung jika sentuhan pixel-nya hanya sepanjang sudut?" adalah "ya" jadi saya mengerti jawaban saya sesuai. Namun demikian, jika Anda berganti-ganti (misalnya) 999 dan 000 di setiap baris, itu terlihat sangat sibuk.
B. Jika kita melihat ini sebagai persegi panjang dengan gigitan yang diambil dari samping, Anda dapat melihat bahwa saya membiarkan tiga piksel antara setiap pasang tentakel yang berdekatan, untuk memastikan bahwa garis hitam di sekeliling luar tidak pernah menyentuh dirinya sendiri. Tidak ada aturan khusus tentang ini (saya harap alasan saya untuk bertanya lebih jelas mengingat jawaban saya.) Jika garis dibiarkan menyentuh dirinya sendiri di luar bentuk, saya bisa memindahkan tentakel bersama dan menggunakan lebih sedikit piksel untuk bilah vertikal (dan membuat tentakel sedikit lebih lama.) Akan, bagaimanapun, menjadi sangat membingungkan untuk menentukan dengan mata apakah sebuah piksel berada di dalam atau di luar bentuk, jadi saya pikir interpretasi saya bahwa bagian luar garis hitam tidak boleh menyentuh itu sendiri adalah yang terbaik.
C. BBC basic dalam mode layar ini memperlakukan piksel layar 2x2 persegi sebagai piksel tunggal. Saya membiarkannya seperti ini, karena membantu melihat jika bentuknya tidak terlalu kecil. Masing-masing piksel dasar BBC ini dianggap sebagai kotak unit logis 4x4. Sejak awal, para pengembang dasar BBC memiliki pandangan ke depan untuk menyadari bahwa resolusi layar satu hari akan meningkat, sehingga mereka membuat resolusi logis lebih tinggi daripada resolusi fisik.
sumber
Mathematica, 496 bytes, Nilai: besar-ish (> 1157)
Batas bawah yang saya dapatkan di sana sangat rendah, tetapi saya belum menemukan cara yang lebih baik daripada brute force untuk memeriksanya.
Saya belum bermain golf ini, karena tidak perlu. Saya akan melakukan itu begitu seseorang membuktikan mereka benar-benar mengikat saya.
Algoritma ini pada dasarnya melakukan pengisian banjir dari sudut kiri atas gambar 109x109 (diimbangi dengan satu piksel untuk memungkinkan jalur) dan ketika saya telah membanjiri 1009 sel, saya berhenti dan menandai perbatasan. Anda bilang warna terserah kita, jadi latar belakangnya putih, garisnya hitam dan interiornya abu-abu (saya bisa menghilangkan abu-abu untuk beberapa karakter jika perlu).
Isi banjir cukup terbatas, tetapi itu memastikan bahwa saya tidak perlu khawatir tentang lubang. Melonggarkan kendala-kendala ini mungkin akan secara dramatis meningkatkan skor saya (belum diketahui).
Saya akan mencoba memberi batas bawah pada skor sekarang.
sumber
Python 2, Nilai> 10 ^ 395
Ini sangat lambat, dan saya belum benar-benar berhasil mendapatkan hasil selain n = 0, tetapi jika Anda ingin mengujinya lebih rendah
SIZE
(jumlah piksel) danBOUND
panjang sisi maksimum kotak pembatas dan Anda harus bisa untuk mendapatkan banyak hasil. Sangat sulit untuk mencoba dan menghitung berapa yang akan dihasilkan; Saya cukup yakin bahwa batas bawah yang saya berikan akurat, tetapi saya curiga jumlah aktualnya secara signifikan lebih besar, dan saya dapat mencoba memperbaikinya nanti.sumber
n=0
? Dan juga dapatkah Anda menjelaskan bagaimana Anda mencapai 10 ^ 395?