หมายเหตุเมื่อฉันพูดว่า "ลบล้าง" ฉันหมายถึงแทนที่ค่าทั้งหมดด้วยศูนย์ (เช่นการลบล้างแบบ bitwise)
ลำดับ Thue-Morse เป็นเช่น 01101001
วิธีที่คุณสร้างมันคือ:
เริ่มต้นด้วยการ 0 ปฏิเสธสิ่งที่เหลืออยู่และผนวกเข้ากับท้าย
เอา0
ล่ะ ลบมันและเพิ่มไปยังจุดสิ้นสุด -01
จากนั้นนำสิ่งนั้นมาและลบล้างมันและบวกมันไปยังจุดสิ้นสุด - 0110
และอื่น ๆ
คุณสมบัติที่น่าสนใจอีกอย่างของที่นี่คือระยะห่างระหว่างศูนย์สร้างสตริง "ไม่มีเหตุผล" และสตริงที่ไม่ซ้ำกัน
ดังนั้น:
0110100110010110
|__|_||__||_|__|
2 1 0 2 01 2 <------------Print this!
คุณสามารถเขียนโปรแกรมที่เมื่อป้อน n จะส่งออกตัวเลข n ตัวแรกของสตริงที่จะพิมพ์หรือไม่?
นี่คือรหัสกอล์ฟจำนวนไบต์ที่สั้นที่สุดจึงจะชนะ!