ความท้าทายของฉันนั้นค่อนข้างยากและไม่ดึงดูดเลย ดังนั้นนี่คือสิ่งที่ง่ายและสนุก
ลำดับของ Alcuin
ลำดับของ Alcuin A(n)
ถูกกำหนดโดยการนับสามเหลี่ยม คือจำนวนของรูปสามเหลี่ยมที่มีด้านจำนวนเต็มและปริมณฑลA(n)
n
ลำดับนี้เรียกว่าหลังจาก Alcuin of York
องค์ประกอบแรก ๆ ของลำดับนี้เริ่มต้นด้วยn = 0
:
0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ...
ยกตัวอย่างเช่นA(9) = 3
เพราะสามเหลี่ยมเฉพาะกับด้านจำนวนเต็มและปริมณฑล9
มี1 - 4 - 4
, และ3 - 3 - 3
2 - 3 - 4
คุณสามารถดูสามเหลี่ยมที่ถูกต้องทั้งสามด้านล่าง
มีรูปแบบที่ค่อนข้างน่าสนใจในลำดับนี้ A(2*k) = A(2*k - 3)
เช่น
สำหรับข้อมูลเพิ่มเติมดูA005044ใน OEIS
ท้าทาย
แต่ความท้าทายของคุณเกี่ยวกับการแทนเลขฐานสองของตัวเลขเหล่านี้ ถ้าเราแปลงเลขลำดับเป็นเลขฐานสองให้วางไว้ในเวกเตอร์คอลัมน์แล้วเรียงแถวมันจะสร้างภาพไบนารีที่น่าสนใจทีเดียว
ในภาพต่อไปนี้คุณสามารถดูแทน binary A(0), A(1), ..., A(149)
ของตัวเลขลำดับ ในคอลัมน์แรกคุณสามารถดูการแทนค่าไบนารีของA(1)
ในคอลัมน์ที่สองการแทนค่าA(1)
และอื่น ๆ
คุณสามารถเห็นรูปแบบการทำซ้ำบางอย่างในภาพนี้ มันยังมีลักษณะ kinda เช่น fractals, A(600), A(601), ..., A(899)
ถ้าคุณมองหาตัวอย่างในภาพที่มีหมายเลขลำดับ
งานของคุณคือการสร้างภาพดังกล่าว ฟังก์ชั่นของคุณสคริปต์ของคุณจะได้รับสองจำนวนเต็มและจะมีการสร้างภาพไบนารีของลำดับ0 <= m < n
Alcuin ของ A(m), A(m+1), A(m+2), ..., A(n-2), A(n-1)
ดังนั้นอินพุต0, 150
จะสร้างภาพแรกคืออินพุท600, 900
ของภาพที่สอง
คุณสามารถใช้รูปแบบกราฟิกยอดนิยมที่คุณต้องการ สมมติว่ารูปแบบที่สามารถแปลงเป็น png ใช้ทุกimage.online-convert.com หรือคุณอาจแสดงภาพบนหน้าจอ ไม่อนุญาตให้นำแถวสีขาวมาด้วย!
นี่คือรหัสกอล์ฟ ดังนั้นรหัสที่สั้นที่สุด (เป็นไบต์) จึงชนะ
white=1 and black=0
หรือวิธีอื่น ๆ ?
white=0 and black=1
@Maltysen ดังนั้นวิธีอื่น A(0)
สร้างคอลัมน์สีขาวA(9)=3
สร้างคอลัมน์สีขาวที่มี 2 พิกเซลสีดำที่ด้านล่าง
0,0,0,1,0,2
0,0,0,1,0,1