บทนำ
ในเรขาคณิตPeano curveเป็นตัวอย่างแรกของเส้นโค้งการเติมพื้นที่ที่จะถูกค้นพบโดย Giuseppe Peano ในปี 1890 โค้งของ Peano เป็นฟังก์ชันที่ต่อเนื่องและยอดเยี่ยมจากช่วงหน่วยลงบนตารางหน่วย Peano ได้รับแรงบันดาลใจจากผลลัพธ์ก่อนหน้านี้ของ Georg Cantor ซึ่งทั้งสองชุดมีความสำคัญเชิงเดียวกัน เนื่องจากตัวอย่างนี้ผู้เขียนบางคนใช้วลี "Peano curve" เพื่ออ้างอิงโดยทั่วไปกับเส้นโค้งการเติมช่องว่างใด ๆ
ท้าทาย
โปรแกรมรับอินพุตซึ่งเป็นจำนวนเต็มn
และเอาท์พุทภาพวาดที่แสดงการn
วนซ้ำของเส้นโค้ง Peano เริ่มต้นจากด้านข้าง 2 ที่แสดงในส่วนด้านซ้ายของภาพนี้:
อินพุต
เลขจำนวนเต็มn
ให้จำนวนการวนซ้ำของเส้นโค้ง Peano ทางเลือกอินพุตเพิ่มเติมอธิบายไว้ในส่วนโบนัส
เอาท์พุต
ภาพวาดของการn
วนซ้ำของเส้นโค้ง Peano การวาดสามารถเป็นได้ทั้งแบบ ASCII หรือการวาด "ของจริง" แล้วแต่ว่าจะง่ายหรือสั้นที่สุด
กฎระเบียบ
- สามารถกำหนดอินพุตและเอาต์พุตในรูปแบบที่สะดวก (เลือกรูปแบบที่เหมาะสมที่สุดสำหรับภาษา / โซลูชันของคุณ)
- ไม่จำเป็นต้องจัดการค่าลบหรืออินพุตที่ไม่ถูกต้อง
- ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น
- หากเป็นไปได้โปรดใส่ลิงค์ไปยังสภาพแวดล้อมการทดสอบออนไลน์เพื่อให้ผู้อื่นสามารถลองใช้รหัสของคุณได้!
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการเล่นกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ
โบนัส
เนื่องจากสิ่งนี้ไม่ควรเดินในสวนสาธารณะ (อย่างน้อยก็ในภาษาส่วนใหญ่ที่ฉันนึกถึง) จึงได้รับคะแนนโบนัสสำหรับสิ่งต่อไปนี้:
- -100 ไบต์หากรหัสของคุณสร้าง GIF
n
ของการก่อสร้างของเส้นโค้งอาโน่ที่ขึ้นไป - -100 ไบต์หากรหัสของคุณวาดเส้นโค้งเติมช่องว่างสำหรับรูปสี่เหลี่ยมผืนผ้าใด ๆ (เส้นโค้ง Peano ใช้ได้กับสี่เหลี่ยมเท่านั้นอย่างเห็นได้ชัด) คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นใช้กับแบบฟอร์ม
n l w
ที่n
มีความหมายเหมือนก่อนหน้า (จำนวนการวนซ้ำ) แต่เมื่อใดl
และw
กลายเป็นความยาวและความกว้างของสี่เหลี่ยมที่วาดเส้นโค้ง หากl == w
นี่เป็นเส้นโค้ง Peano ปกติ
อนุญาตคะแนนเชิงลบ (แต่เป็นไปได้ ... )
แก้ไข
n == 3 (l == w == 1)
กรุณารวมการส่งออกของโปรแกรมของคุณในการแก้ปัญหาสำหรับ
n
ใช้อะไรถ้าl
และยังw
เป็นอินพุต ???????????? และเส้นโค้ง Peano จะเป็นกรณีพิเศษ - ไม่ใช่เส้นโค้ง spacefilling เพียงอย่างเดียวดังนั้นอัลกอริทึมบางอย่างอาจต้องพิเศษ