Adam7เป็นอัลกอริทึมการเชื่อมโยงสำหรับภาพแรสเตอร์เช่น PNG มันถูกเรียกว่าอัลกอริทึม "Adam7" เพราะมันถูกคิดค้นโดย Adam M. Costello และมันถูกสร้างขึ้นโดยทำตามรูปแบบที่แน่นอน 7 ครั้ง หนึ่งในสิ่งที่ยอดเยี่ยมเกี่ยวกับอัลกอริทึม Adam7 ที่ทำให้มันสนุกสำหรับกอล์ฟรหัสคือรูปแบบนั้นสามารถทำซ้ำได้หลายครั้งโดยพลการตราบใดที่มันแปลก ย้อนกลับไปเมื่อปี 1996 เมื่อPNG
มาตรฐานได้รับการพัฒนาการใช้การทำซ้ำเพียง 7 ครั้งก็ถือว่าเพียงพอเนื่องจากการทำซ้ำ 9 ครั้งนั้นซับซ้อนเกินไปและการทำซ้ำ 5 ครั้งนั้นไม่ได้มีประสิทธิภาพ
นี่คือการวนซ้ำครั้งแรกของกระเบื้อง:
a
ค่อนข้างง่าย นี่เป็นไทล์ "Adam1" นี่คือวิธีที่เราจะไปถึงการทำซ้ำครั้งถัดไปไทล์ "Adam3"
ตั้งแต่กระเบื้องสุดท้ายของเราคือเราสองเท่าของความสูงและความกว้างและเป็นคนต่อไปจะเป็น1x1
2x2
อันดับแรกเราเริ่มต้นด้วย 'a' ที่มุมซ้ายบน
a-
--
ขั้นตอนที่ 2 คัดลอกรูปแบบนี้ไปทางขวาและเพิ่มตัวอักษรที่เรากำลังทำอยู่
ab
--
ขั้นตอนที่ 3 เช่นเดียวกับขั้นตอนที่ 2 แต่คัดลอกลงแทนขวา
ab
cc
ความเจริญ ไทล์ "Adam3" ลองทำ "Adam5" ด้วยเช่นกันเพื่อให้คุณเห็นจริง ๆ ว่าอัลกอริทึมทำงานอย่างไร 4x4
กระเบื้องนี้จะอีกครั้งเป็นสองเท่าของขนาดใหญ่เพื่อ อีกครั้งเราเริ่มด้วย a a
ที่มุมซ้ายบน:
a---
----
----
----
เพิ่มรูปแบบนี้เป็นสองเท่าเพิ่มตัวอักษรและย้ายไปทางขวา:
a-b-
----
----
----
อีกครั้งคราวนี้ลง
a-b-
----
c-c-
----
อีกครั้งคราวนี้ไปทางขวา
adbd
----
cdcd
----
อีกครั้งคราวนี้ลง
adbd
eeee
cdcd
eeee
นี่คือไทล์ "Adam5" นี่คือตัวแทน ASCII ของไทล์ Adam7:
afdfbfdf
gggggggg
efefefef
gggggggg
cfdfcfdf
gggggggg
efefefef
gggggggg
และในขณะที่เราอยู่ที่นี่นี่เป็นแอนิเมชั่นสนุก ๆ ของแต่ละขั้นตอนของแผ่นกระเบื้อง Adam7 (แม้ว่ามันจะเรียงต่อกันหลาย ๆ แผ่น):
ความท้าทาย
รับเลขคี่บวกNเอาท์พุทไพ่"Adam N " คุณสามารถใช้วิธีการเริ่มต้นของ IO เนื่องจากเราใช้ตัวอักษรแทนตัวเลขคุณจะต้องจัดการอินพุตสูงถึง 25 คุณสามารถเลือกที่จะแสดงตัวอักษรตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ตราบใดที่คุณระบุและสอดคล้องกัน
ตัวอย่าง IO
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
ตามปกตินี่คือ code-golf ดังนั้นจึงใช้ช่องโหว่มาตรฐานและคำตอบที่สั้นที่สุดในการชนะไบต์!
c
ใน testcase สำหรับ9
?