เห็นได้ชัดว่าใช่! ในสามขั้นตอนง่าย ๆ
ขั้นตอนที่ 1
ให้f ( n ) แสดงถึงฟังก์ชั่นการนับจำนวนเฉพาะ (จำนวนของจำนวนเฉพาะน้อยกว่าหรือเท่ากับn )
กำหนดลำดับ จำนวนเต็มs ( n ) ดังต่อไปนี้ สำหรับแต่ละจำนวนเต็มบวกn ,
- Initiallize เสื้อเพื่อn
- ตราบใดที่tไม่ใช่ไพร์มหรือ 1 ให้แทนที่tด้วยf ( t ) และวนซ้ำ
- จำนวนการวนซ้ำคือs ( n )
กระบวนการซ้ำรับประกันได้ว่าจะสิ้นสุดเพราะฉ ( n ) < nสำหรับทุกn
ลองพิจารณาตัวอย่างn = 25 เรา initiallize T = 25 ตั้งแต่นี้ไม่ได้เป็นนายกมิได้ 1 เราคำนวณฉ (25) ซึ่งเป็น 9 นี้จะกลายเป็นค่าใหม่สำหรับเสื้อ นี่ไม่ใช่ไพร์มหรือ 1 ดังนั้นเราจึงดำเนินการต่อ: f (9) คือ 4 เราดำเนินการอีกครั้ง: f (4) คือ 2 เนื่องจากนี่คือไพรม์เราหยุดที่นี่ เราได้ทำซ้ำ 3 ครั้ง (จาก 25 ถึง 9 จากนั้นเป็น 4 จากนั้นเป็น 2) ดังนั้นs (25) คือ 3
40 คำแรกของลำดับมีดังนี้ ลำดับไม่ได้อยู่ใน OEIS
0 0 0 1 0 1 0 2 2 2 0 1 0 2 2 2 0 1 0 3 3 3 0 3 3 3 3 3 0 3 0 1 1 1 1 1 0 2 2 2
ขั้นตอนที่ 2
ได้รับการบวกจำนวนเต็มคี่Nสร้างอาร์เรย์ N ร N (เมทริกซ์) โดยคดเคี้ยวลำดับ จำกัดs (1), s (2), ... , s ( N 2 ) รูปแบบตารางออกไปด้านนอกเกลียว ตัวอย่างเช่นกำหนดN = 5 เป็นเกลียว
s(21) s(22) s(23) s(24) s(25)
s(20) s(7) s(8) s(9) s(10)
s(19) s(6) s(1) s(2) s(11)
s(18) s(5) s(4) s(3) s(12)
s(17) s(16) s(15) s(14) s(13)
หรือแทนที่ค่า
3 3 0 3 3
3 0 2 2 2
0 1 0 0 0
1 0 1 0 1
0 2 2 2 0
ขั้นตอนที่ 3
แสดงอาร์เรย์ N × N เป็นรูปภาพที่มีแผนที่สีเทาหรือแผนที่สีอื่น ๆ ที่คุณชอบ แผนที่ควรค่อยเป็นค่อยไปเพื่อให้ลำดับของตัวเลขสอดคล้องกับลำดับของสีที่เห็นได้ชัดเจน กรณีทดสอบด้านล่างแสดงแผนที่สีบางตัวอย่าง
ความท้าทาย
ได้รับการบวกจำนวนเต็มคี่N , ผลิตภาพที่อธิบายข้างต้น
กฎระเบียบ
เกลียวจะต้องออกไปด้านนอก แต่สามารถตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาและสามารถเริ่มย้ายไปทางขวา (เช่นในตัวอย่างข้างต้น), ซ้าย, ขึ้นหรือลง
ตาชั่งของแกนนอนและแนวตั้งไม่จำเป็นต้องเหมือนกัน นอกจากนี้ยังมีป้ายกำกับแกนแถบสีและองค์ประกอบที่คล้ายกันเป็นตัวเลือก ตราบเท่าที่เกลียวสามารถมองเห็นได้อย่างชัดเจนภาพที่ถูกต้อง
ภาพที่สามารถส่งออกโดยใด ๆ ของวิธีการมาตรฐาน โดยเฉพาะอย่างยิ่งภาพอาจปรากฏบนหน้าจอหรือไฟล์กราฟิกอาจจะผลิตหรืออาร์เรย์ของค่า RGB อาจถูกส่งออก หากการส่งออกไฟล์หรืออาร์เรย์กรุณาโพสต์ตัวอย่างของสิ่งที่ดูเหมือนว่าเมื่อแสดง
วิธีการป้อนข้อมูลและรูปแบบที่มีความยืดหยุ่นได้ตามปกติ โปรแกรมหรือฟังก์ชั่นสามารถให้ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
กรณีทดสอบ
ภาพต่อไปนี้ (คลิกเพื่อความละเอียดเต็ม) สอดคล้องกับค่านิยมของหลายN ใช้เกลียวเกลียวนาฬิกาด้านขวา - ขวาตามตัวอย่างด้านบน รูปภาพยังแสดงแผนที่สีที่ถูกต้องหลายรายการ
imshow
ไม่
imshow
ทำอย่างนั้นหรือไม่
s(n)
สามารถป้อนลงในฟังก์ชั่นการพล็อต / แพคเกจโดยไม่ต้องมีการแก้ไข (ฉันคิดว่าimshow
ใน matplotlib สามารถจัดการเรื่องนี้ได้ตัวอย่าง) นี่เป็นรูปแบบผลลัพธ์ที่ยอมรับได้หรือไม่?