ความท้าทายนี้ได้รับแรงบันดาลใจอย่างหลวม ๆ จาก Esolang Pada ที่ยังไม่ได้ใช้งาน
พิจารณาอาร์เรย์จำนวน 8 บิตซึ่งเริ่มต้นเป็นศูนย์ทั้งหมด เราจะแนะนำชุดคำสั่งแบบมินิมัลลิสต์เพื่อพิมพ์สตริงเอง มีสองคำแนะนำซึ่งทั้งคู่ใช้พารามิเตอร์N
ซึ่งเป็นดัชนีของบิต:
t N
สำหรับเสื้อ oggle:N
นี้เปลี่ยนค่าของบิตp N
สำหรับพี rint: ตำทั้งหมดนี้เป็น 8 บิตไบต์เริ่มต้นจากบิตN
และการตัดรอบท้าย อักขระที่สอดคล้องกับไบต์นี้ถูกพิมพ์ไปยัง STDOUT
ลองดูตัวอย่าง :=
เราต้องการที่จะพิมพ์ เราทำสิ่งนี้ได้อย่างไร้เดียงสาดังนี้ (ดัชนีบิต 0):
t 2 [0 0 1 0 0 0 0 0]
t 3 [0 0 1 1 0 0 0 0]
t 4 [0 0 1 1 1 0 0 0]
t 6 [0 0 1 1 1 0 1 0]
p 0 [0 0 1 1 1 0 1 0] == 58 == ':'
t 5 [0 0 1 1 1 1 1 0]
t 6 [0 0 1 1 1 1 0 0]
t 7 [0 0 1 1 1 1 0 1]
p 0 [0 0 1 1 1 1 0 1] == 61 == '='
แต่เราสามารถใช้คุณสมบัติ cyclic p
และบันทึกสองคำแนะนำแทน:
t 2 [0 0 1 0 0 0 0 0]
t 3 [0 0 1 1 0 0 0 0]
t 4 [0 0 1 1 1 0 0 0]
t 6 [0 0 1 1 1 0 1 0]
p 0 [0 0 1 1 1 0 1 0] == 58 == ':'
t 1 [0 1 1 1 1 0 1 0]
p 7 [0 1 1 1 1 0 1 0] == [0 0 1 1 1 1 0 1] == 61 == '='
^
ดังนั้นp 7
เพียงแค่เริ่มอ่านค่าไบต์จากบิตสุดท้ายแทนที่จะเป็นบิตแรก
ความท้าทาย
รับสตริงอักขระ ASCII ที่ไม่ว่างเปล่าที่พิมพ์ได้ (0x20 ถึง 0x7E, รวม) สร้างรายการคำสั่งที่เหมาะสม (หนึ่งบรรทัดต่อหนึ่งคำสั่ง) เพื่อพิมพ์สตริงนั้นด้วยระบบข้างต้น หากมีการแก้ปัญหาที่ดีที่สุดหลายอย่าง (ซึ่งมักจะเป็นกรณี) สร้างเพียงหนึ่งในนั้น
คุณอาจเลือกระหว่างการจัดทำดัชนีแบบ 0 และแบบ 1 สำหรับบิต แต่โปรดระบุตัวเลือกของคุณ
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ หากคุณไม่พิมพ์ผลลัพธ์ไปที่ STDOUT ก็ควรจะเป็นสตริงที่คั่นด้วยบรรทัดใหม่
นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ
กรณีทดสอบ
แต่ละกรณีทดสอบเป็นบรรทัดเดียวที่มีสตริงป้อนข้อมูลตามด้วยจำนวนคำสั่งที่เหมาะสมตามด้วยโซลูชันที่เป็นไปได้หนึ่งข้อ
คุณไม่ควรส่งออกจำนวนการเรียนการสอนในการแก้ปัญหาของคุณ - นี้จะรวมอยู่ที่นี่เท่านั้นเพื่อให้คุณสามารถตรวจสอบความถูกต้องของรหัสของคุณถ้ามันพิมพ์รายการคำแนะนำที่แตกต่างกัน
?
7 instructions
t 2
t 3
t 4
t 5
t 6
t 7
p 0
:=
7 instructions
t 2
t 3
t 4
t 6
p 0
t 1
p 7
0123456789
26 instructions
t 2
t 3
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
t 5
t 6
t 7
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
t 2
t 3
p 3
t 2
p 3
9876543210
28 instructions
t 2
t 3
t 4
t 7
p 0
t 7
p 0
t 0
t 7
p 5
t 4
p 5
t 0
t 5
p 0
t 7
p 0
t 5
t 6
t 7
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
Hello, World!
39 instructions
t 1
t 4
p 0
t 3
t 7
p 2
t 1
t 6
p 2
p 2
t 0
t 1
p 2
t 0
t 1
t 3
p 2
t 6
t 7
p 2
t 0
t 2
t 6
t 7
p 1
t 0
t 1
t 5
p 0
t 2
t 7
p 3
t 2
t 6
p 0
t 4
p 0
t 1
p 3
The quick brown fox jumps over the lazy dog.
150 instructions
t 1
t 3
t 5
p 0
t 1
t 2
p 1
t 1
t 3
t 7
p 0
t 1
t 5
t 7
p 0
t 1
t 3
t 7
p 0
t 5
p 0
t 3
t 4
t 5
p 0
t 4
t 6
p 0
t 4
p 0
t 1
t 4
t 6
t 7
p 0
t 1
t 6
p 0
t 3
p 0
t 0
t 5
p 4
t 0
t 7
p 0
t 1
p 1
t 3
t 5
t 6
t 7
p 0
t 1
t 5
t 6
p 0
t 4
t 7
p 0
t 1
t 2
p 3
t 5
t 6
t 7
p 2
t 1
t 2
t 6
p 0
t 0
p 7
t 0
t 7
p 5
t 3
t 4
t 6
t 7
p 0
t 6
t 7
p 0
t 1
t 3
t 6
t 7
p 0
t 1
t 4
t 5
t 6
t 7
p 0
t 4
p 4
t 6
p 0
t 1
t 6
p 4
t 5
t 6
t 7
p 0
t 1
t 3
t 5
p 0
t 1
p 1
t 1
t 3
t 7
p 0
t 1
t 5
t 7
p 0
t 1
t 4
t 5
p 0
t 1
p 3
t 3
t 7
p 1
t 1
t 5
p 0
t 1
t 3
t 4
t 7
p 0
t 1
t 5
p 0
t 4
t 6
t 7
p 0
t 4
p 0
t 1
t 4
t 7
p 0
กรณีทดสอบถูกสร้างขึ้นด้วยการใช้งานอ้างอิง CJamนี้