Tantangan saya cenderung sedikit keras dan tidak menarik. Jadi di sini sesuatu yang mudah dan menyenangkan.
Urutan Alcuin
Urutan Alcuin A(n)
didefinisikan dengan menghitung segitiga. A(n)
adalah jumlah segitiga dengan sisi bilangan bulat dan keliling n
. Urutan ini disebut setelah Alcuin of York.
Beberapa elemen pertama dari urutan ini, dimulai dengan n = 0
adalah:
0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ...
Misalnya A(9) = 3
, karena satu-satunya segitiga dengan sisi bilangan bulat dan perimeter 9
adalah 1 - 4 - 4
, 3 - 3 - 3
dan 2 - 3 - 4
. Anda dapat melihat 3 segitiga yang valid di bawah.
Ada beberapa pola yang cukup menarik dalam urutan ini. Misalnya A(2*k) = A(2*k - 3)
.
Untuk informasi lebih lanjut, lihat A005044 tentang OEIS.
Tantangan
Tetapi tantangan Anda adalah tentang representasi biner dari angka-angka ini. Jika kita mengonversi setiap nomor urut ke representasi binernya, memasukkannya ke dalam vektor kolom dan membariskannya, itu menciptakan gambar biner yang cukup menarik.
Dalam gambar berikut ini Anda dapat melihat representasi biner dari nomor urut A(0), A(1), ..., A(149)
. Di kolom pertama Anda bisa melihat representasi biner A(1)
, di kolom kedua representasi A(1)
, dan seterusnya.
Anda dapat melihat semacam pola berulang dalam gambar ini. Bahkan terlihat seperti fraktal, jika Anda melihat misalnya pada gambar dengan nomor urut A(600), A(601), ..., A(899)
.
Tugas Anda adalah menghasilkan gambar seperti itu. Fungsi Anda, skrip Anda akan menerima dua bilangan bulat 0 <= m < n
, dan harus menghasilkan gambar biner dari urutan Alcuin A(m), A(m+1), A(m+2), ..., A(n-2), A(n-1)
. Jadi input 0, 150
menghasilkan gambar pertama, input 600, 900
gambar kedua.
Anda dapat menggunakan format grafis populer yang Anda inginkan. Katakanlah setiap format yang dapat dikonversi ke png menggunakan image.online-convert.com . Atau, Anda dapat menampilkan gambar di layar. Tidak ada baris putih terdepan yang diizinkan!
Ini adalah kode-golf. Jadi kode terpendek (dalam byte) menang.
white=1 and black=0
atau sebaliknya?
white=0 and black=1
. Jadi sebaliknya. A(0)
menghasilkan kolom putih, A(9)=3
menghasilkan kolom putih dengan 2 piksel hitam di bagian bawah.
0,0,0,1,0,2
sementara daftar di awal pertanyaan mengatakan 0,0,0,1,0,1
.