งานของคุณ: สร้างเกล็ดหิมะ Koch ให้ลึกที่ n คุณไม่จำเป็นต้องสร้างเกล็ดหิมะ Koch ที่สมบูรณ์เพียงด้านใดด้านหนึ่งของสามเหลี่ยมเริ่มต้น วิกิพีเดียสะเก็ด Koch: https://en.wikipedia.org/wiki/Koch_snowflake
กฎ:
- โปรแกรมจะต้องสร้างเกล็ดหิมะ Koch ด้านใดด้านหนึ่งให้ลึกที่ n
- เอาต์พุตต้องเป็น ASCII
- คุณสามารถสร้างเกล็ดหิมะทั้งหมด; ไม่จำเป็น
- กฎมาตรฐานสำหรับอินพุต / เอาต์พุตและช่องโหว่และสิ่งที่ใช้
- ช่องว่างไม่สำคัญตราบใดที่อักขระทั้งหมดอยู่ในตำแหน่งที่ถูกต้องซึ่งสัมพันธ์กัน
- รหัสที่สั้นที่สุดชนะ!
กรณีทดสอบ:
n = 0:
__
n = 1:
__/\__
n = 2:
__/\__
\ /
__/\__/ \__/\__
n = 3:
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
ฉันหวังว่านี่จะสมเหตุสมผล โปรดสังเกตว่าในแต่ละกรณีทดสอบเศษส่วนสามารถแบ่งออกเป็นสามส่วนเท่ากันในความยาว สังเกตว่าความกว้างของเกล็ดหิมะแต่ละครั้งนั้นมีความกว้างเป็นสามเท่าของรุ่นก่อนหน้าของเกล็ดหิมะ
FYI มันก็ตกลงกันว่านี้ไม่ได้ล่อของนี้
—
สหาย SparklePony
ฉันไม่คิดว่าคุณได้กำหนดไว้อย่างเหมาะสมว่าการแสดง ASCII ที่เหมาะสมของเส้นโค้ง Koch ที่ n คืออะไร
—
orlp
ฉันไม่แน่ใจว่าสัดส่วนที่เหมาะสม ไม่ใช่การล่อจับคู่ที่ใช้
—
Ørjan Johansen
__/\__
กับการขีดเส้นใต้สองเส้นซึ่งทำให้การวนซ้ำแต่ละครั้งอย่างต่อเนื่อง 3 เท่าเท่าครั้งก่อน การใช้ขีดเส้นใต้เพียงอันเดียวดูเหมือนว่าจะขัดแย้งกันและเริ่มรู้สึกอึดอัดใจใน n = 3 เช่นชิ้นส่วนด้านนอกมีความกว้าง 12 ในขณะที่ส่วนตรงกลางมีความกว้างเพียง 10 เป็นผลมาจาก/_
และ_\
ที่แคบเกินไป และแม้กระทั่งก่อนที่คุณได้_
ขยายไปยังสองเท่าความกว้างของและ/
\
ผมคิดว่า
—
Ørjan Johansen
/_
และ_\
เป็นเพียงส่วนหนึ่งที่ร้ายแรงจริงๆ - ขีดจำเป็นต้องไปเพราะพวกเขาต้องการที่จะอยู่ในตำแหน่งเดียวกับและ/
\
เมื่อเสร็จแล้วสิ่งต่างๆสามารถขยายได้ 3 เท่าจาก n = 1 เป็นต้นไป (แต่ n = 0 ไม่พอดี)
อนิจจาไม่ส่วนตรงกลางยังคงมีความกว้างไม่ตรงกับชิ้นส่วนด้านนอกตามหลักฐานโดย n = 3 ที่มีความกว้าง 52 มากกว่า 54 = 2 * 3 ^ 3 ลองของเหล่านี้ ฉันรวมรุ่นกลับหัวที่มีบางส่วนแสดงเฉพาะจาก n = 4 หรือ n = 5 - พวกเขาแตกต่างจากรุ่นขึ้นในที่ที่ขีดล่างถูกลดลง
—
Ørjan Johansen