Adam7 là một thuật toán xen kẽ cho các hình ảnh raster, chẳng hạn như PNG. Nó được gọi là thuật toán "Adam7" bởi vì nó được phát minh bởi Adam M. Costello và nó được tạo ra bằng cách tuân theo một mẫu nhất định 7 lần. Một trong những điều thú vị về thuật toán Adam7 làm cho nó thực sự thú vị đối với môn đánh gôn, là mô hình có thể được lặp lại một số lần tùy ý, miễn là nó kỳ quặc. Trở lại năm 1996 khi PNG
tiêu chuẩn được phát triển, chỉ sử dụng 7 lần lặp là đủ, vì 9 lần lặp quá phức tạp và 5 lần lặp không hiệu quả.
Đây là lần lặp đầu tiên của gạch:
a
Khá đơn giản. Đây là một lát "Adam1". Đây là cách chúng ta có được lần lặp tiếp theo, ô "Adam3".
Vì lát cuối cùng của chúng tôi là 1x1
, chúng tôi tăng gấp đôi chiều cao và chiều rộng, và cái tiếp theo sẽ là 2x2
. Đầu tiên, chúng tôi bắt đầu với một 'a' ở góc trên bên trái.
a-
--
Bước 2, sao chép mẫu này sang bên phải và tăng chữ cái chúng tôi viết lên.
ab
--
Bước 3, giống như bước 2, nhưng sao chép xuống thay vì phải.
ab
cc
Bùng nổ. Ngói "Adam3". Chúng ta cũng hãy thực hiện "Adam5", vì vậy bạn thực sự có thể thấy thuật toán hoạt động như thế nào. Gạch này sẽ, một lần nữa, sẽ lớn gấp đôi, vì vậy 4x4
. Một lần nữa, chúng tôi bắt đầu với một a
ở góc trên bên trái:
a---
----
----
----
Nhân đôi mẫu này, tăng chữ cái và di chuyển nó sang bên phải:
a-b-
----
----
----
Một lần nữa, lần này xuống.
a-b-
----
c-c-
----
Một lần nữa, lần này là bên phải.
adbd
----
cdcd
----
Một lần nữa, lần này xuống.
adbd
eeee
cdcd
eeee
Đây là gạch "Adam5". Dưới đây là đại diện ASCII của ô Adam7:
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
Và trong khi chúng ta đang ở đó, đây là một hình ảnh động thú vị về từng bước của ô Adam7 (mặc dù nó có một số ô cạnh nhau):
Các thách thức
Cho số lẻ N dương , xuất ra ô "Adam N ". Bạn có thể sử dụng bất kỳ phương pháp mặc định nào của IO . Vì chúng tôi đang sử dụng bảng chữ cái thay cho số, bạn chỉ cần xử lý các đầu vào tối đa 25. Bạn có thể chọn xuất các ký tự chữ thường hoặc chữ hoa miễn là bạn chỉ định và nó phù hợp.
IO mẫu
1:
a
3:
ab
cc
5:
adbd
eeee
cdcd
eeee
7:
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
9:
ahfhdhfhbhfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
chfhdhfhchfhdhfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
ehfhehfhehfhehfh
iiiiiiiiiiiiiiii
ghghghghghghghgh
iiiiiiiiiiiiiiii
Như thường lệ, đây là môn đánh gôn, vì vậy các sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất bằng byte sẽ thắng!
c
trong thử nghiệm cho9
?