วาดลำดับของRecamánด้วย ASCII


12

ลำดับของRecamán ( A005132 ) เป็นลำดับทางคณิตศาสตร์ที่กำหนดดังนี้:

A(n)={0if n=0A(n-1)-nถ้า A(n-1)-n เป็นบวกและไม่ได้อยู่ในลำดับA(n-1)+nมิฉะนั้น

ทางเลือกคำอธิบายทางวาจาที่ง่ายกว่ามีดังนี้:

ลบออกนอกเสียจากว่าคุณไม่สามารถทำได้ (ตัวเลขนั้นเป็นค่าลบหรือเคยใช้มาก่อน) ซึ่งในกรณีนี้จะเพิ่ม

คำสองสามคำแรกคือ0,1,3,6,2,7,13,20,12,21,11

ขณะนี้มีความท้าทายนี้อยู่แล้วซึ่งจะขอให้คุณสร้างnคำที่ตามลำดับ อันนี้แตกต่างกันเล็กน้อย

ท้าทาย

กำหนดตัวเลขnวาดnเทอมแรกของลำดับ ฉันหมายถึงอะไรโดย 'วาด' ให้ฉันสาธิต:

  1. วาดmax([A(y) for y<=n])หน่วยเส้นจำนวนยาว เราจะถือว่าnเป็น 5 ในตอนนี้ดังนั้นหมายเลขบรรทัดคือ 6 หน่วยยาว (เนื่องจากมากที่สุดของA(1)=0 , A(2)=1 , A(3)=3 , A(4)=6และA(5)=2คือ6 ) ทำให้เส้นจากขีดล่างเริ่มต้นที่ 0:

______

  1. เริ่มต้นด้วยการเปลี่ยนแปลงระหว่างคำที่หนึ่งและที่สอง: นั่นคือ 0 และ 1 ใช้|และ-เพื่อวาดสี่เหลี่ยม (ความยาวและความสูงเท่ากัน) ขึ้นไป ในกรณีนี้เราจะต้องพลาด-เพราะระยะทางเป็นเพียง 1
||
______
  1. ตอนนี้เราจะวาดในขั้นตอนต่อไป ( A(2)=1A(3)=3
||
______
 | |
 |-|

อย่างที่คุณเห็นบรรทัดนี้มีความสูง 2 เนื่องจากความสูงต้องเท่ากับระยะห่างระหว่างสองเทอม

หากเราดำเนินการต่อเราจะไปที่:

   |--|
   |  |
|| |  |
______
 |||  |
 |||  |
  |   |
  |---|

กฎระเบียบ

  • หากมี-และ|ชนกันสิ่งที่ใหม่กว่าจะมีความสำคัญ
  • อาจจะมีการมาก่อน / ช่องว่างต่อท้ายก่อน / หลังภาพ แต่ต่อท้าย / นำหน้า_s หรือ-ไม่อนุญาตให้ใช้การ s (ยกเว้นการทำดัชนี 0- หรือ 1-)
  • คุณสามารถเลือกที่จะตั้งค่า 0 คะแนนก่อนหน้าแรก _ในบรรทัดตัวเลขหรือเพียงหลังจากนั้น
  • ไม่มีตัวอักษรทางเลือกสำหรับ-, |หรือ_อาจจะใช้
  • นี่คือดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

กรณีทดสอบ

นี่เป็นอีกกรณีทดสอบด้วย n=10

            |-------|
            ||-----||
            ||     ||
  |----|    ||     ||
  |    |    ||     ||
  ||--||    ||     ||
  ||  ||    ||     ||
||||  ||    ||     ||
_____________________
 |||  ||   |||     ||
 |||  ||   |||     ||
  |   ||   |||     ||
  |---||   |||     ||
       |   |||     ||
       |---|||     ||
           ||------||
           |--------|

ไม่ชัดเจนว่าควรวางขอบซ้ายของจัตุรัสไว้ที่ใด
Daniil Tutubalin

@DaniilTutubalin ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึง
Geza Kerecsenyi

โดยพื้นฐานแล้วแถลงระบุเพียงว่าเราจำเป็นต้องวาดสี่เหลี่ยม (width = height) และพวกเขาควรสลับระหว่างขึ้นและลง ไม่มีคำแนะนำเกี่ยวกับขนาดและตำแหน่งของสี่เหลี่ยม ในกรณีทดสอบฉันเห็นว่า 2 สี่เหลี่ยมอาจมีตำแหน่งเดียวกันกับขอบด้านซ้าย
Daniil Tutubalin

ฉันคิดว่าAs you can see, this line also has a height of 2, since the height must be equal to the distance between the two terms.รวมทั้งYou can choose to set the 0 point just before the first _ on the number line, or just after it.ห่อนี้ให้สวยดี
Geza Kerecsenyi

ฉันคิดว่ากรณีทดสอบสำหรับ n = 10 ผิดตั้งแต่ 13-> 20 เป็นต้นไป
Nick Kennedy

คำตอบ:


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.