用ASCII绘制Recamán的序列


12

Recamán的序列(A005132)是一个数学序列,定义如下:

一种ñ={0如果 ñ=0一种ñ-1个-ñ如果 一种ñ-1个-ñ 是正数,尚未在序列中一种ñ-1个+ñ除此以外

另一种更简单的口头解释如下:

除非您不能减去(数字为负数,或者以前使用过),否则应减去。

前几个术语是01个36271320122111

现在,已经存在挑战,要求您生成n序列的th项。这一点有些不同。

挑战

给定一个数字n,绘制n序列的第一项。“抽奖”是什么意思?让我示范一下:

  1. 画一个数字线max([A(y) for y<=n])单位长。我们n现在假设是5,所以数字行长6个单位(因为,,,的最大值并且是)。从下划线开始,从0开始:一种1个=0一种2=1个一种3=3一种4=6一种5=26

______

  1. 从第一项和第二项之间的过渡开始,即0和1。使用|-绘制一个向上的正方形(长度和高度相等)。在这种情况下,我们必须错过,-因为距离只有1。
||
______
  1. 现在,我们在该行的底部进行下一步(到)(我们每次在上下之间交替):一种2=1个一种3=3
||
______
 | |
 |-|

如您所见,这条线的高度也为2,因为该高度必须等于两个项之间的距离。

如果我们继续,我们最终将达到:

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

规则

  • 如果存在-|发生冲突,则后一个优先。
  • 图像之前/之后可能存在前导/尾随空格,但是不允许尾随/前导_s或-s(索引为0或1-除外)
  • 您可以选择将0点设置在_数字行中的第一个点之前或之后。
  • 没有替代字符-|_可被使用。
  • 这是,因此最短答案以字节为单位。

测试用例

这是另一个测试用例 n=10

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

尚不清楚应将正方形的左边缘放置在何处。
Daniil Tutubalin

@DaniilTutubalin我不确定我明白你的意思。
Geza Kerecsenyi

基本上,语句仅指定我们需要绘制正方形(宽度=高度),并且它们应该在上下之间交替。没有关于正方形的大小和位置的说明。在测试案例中,我看到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

我认为从13-> 20开始,n = 10的测试用例是错误的。
尼克·肯尼迪

Answers:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.