บทนำ
คุณอาจรู้จักและชื่นชอบวงรอบหน่วยปกติของคุณ แต่ mathematicans จะบ้าและทำให้พวกเขาได้ใจลอยแนวคิดไปยังจุดใด ๆ x*x+y*y=1
ที่น่าพอใจ เพราะ Cryptographers 1ก็แปลกพวกเขาชอบฟิลด์ จำกัด และบางครั้งวงแหวน จำกัด (มันไม่เหมือนที่พวกเขามีทางเลือกมาก) ดังนั้นลองรวมกัน!
ความท้าทาย
อินพุต
จำนวนเต็มบวกมากกว่าหนึ่งในการเข้ารหัสที่คุณชื่นชอบ เรียกหมายเลขนี้กัน
เอาท์พุต
คุณจะเอาท์พุท "รูปภาพ" (ซึ่งประกอบด้วย n คูณ n ตัวอักษร) ของหน่วยวงกลมปรับเปลี่ยนจำนวนเต็มอินพุตเป็น ASCII-Art โดยใช้ "X" (ละตินตัวพิมพ์ใหญ่) และ "" (ช่องว่าง) อนุญาตให้เว้นวรรคต่อท้ายและขึ้นบรรทัดใหม่
รายละเอียดเพิ่มเติม
คุณต้องขยายระบบพิกัดจากล่างซ้ายไปขวาบน เมื่อใดก็ตามที่จุดเป็นไปตามสมการวงกลมให้วาง X ไว้ที่ตำแหน่งหรือวางช่องว่าง
เงื่อนไขสำหรับจุดที่ถือว่าเป็นส่วนหนึ่งของเส้นขอบวงกลมคือ:
mod(x*x+y*y,n)==1
.
นี่คือภาพประกอบอย่างย่อของระบบพิกัด:
(0,4)(1,4)(2,4)(3,4)(4,4)
(0,3)(1,3)(2,3)(3,3)(4,3)
(0,2)(1,2)(2,2)(3,2)(4,2)
(0,1)(1,1)(2,1)(3,1)(4,1)
(0,0)(1,0)(2,0)(3,0)(4,0)
หากมันช่วยคุณได้คุณอาจกลับทิศทางของแกนใด ๆ ก็ได้ แต่ตัวอย่างจะสมมติการวางแนวนี้
ใครชนะ?
นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในไบต์ชนะ! อนุญาตให้ใช้วิธีการเริ่มต้น I / O เท่านั้นและห้ามช่องโหว่มาตรฐานทั้งหมด
ตัวอย่าง
อินพุต: 2
X
X
อินพุต: 3
X
X
XX
อินพุต: 5
X
X
X X
อินพุต: 7
X
X X
X X
X
X X
อินพุต: 11
X
XX
X X
X X
XX
X
X X
อินพุต: 42
X
X X
X X
X X
X X
X
X X X X
X X X X
X
X X
X X
X X
X X
X
X X X X
X
X X
X X
X X
X X
X
X X X X
X X X X
X
X X
X X
X X
X X
X
X X X X
1 ฉันขอแนะนำให้คุณดูที่โปรไฟล์ของฉันหากคุณสงสัยที่นี่