ASCIIでRecamánのシーケンスを描く


11

Recamánのシーケンス(A005132)は、次のように定義される数学的シーケンスです。

A(n)={0if n=0A(n1)nif A(n1)n is positive and not already in the sequenceA(n1)+notherwise

代替の、より単純な言葉による説明は次のとおりです。

できない場合(数値が負であるか、以前に使用されたことがない場合)を減算します。その場合は加算します。

最初のいくつかの用語は、0,1,3,6,2,7,13,20,12,21,11

さて、シーケンスのth項を生成するように要求するこの課題が既にnあります。これは少し異なります。

チャレンジ

数値を指定すると、シーケンスのn最初のn項を描画します。「描く」とはどういう意味ですか?デモさせてください:

  1. max([A(y) for y<=n])nA(1)=0A(2)=1A(3)=3A(4)=6A(5)=26

______

  1. 最初の項と2番目の項の間の遷移から始まります。つまり、0と1です。|-を使用して、正方形(長さと高さが等しい)を上に向かって描きます。この場合、-距離は1しかないため、見逃す必要があります。
||
______
  1. A(2)=1A(3)=3
||
______
 | |
 |-|

ご覧のとおり、高さは2つの用語間の距離に等しくなければならないため、この行の高さも2です。

続行すると、最終的に次のようになります。

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

ルール

  • ある場合-|衝突し、後に1が優先されます。
  • 画像の前後に前後のスペースが存在する場合がありますが、_sまたは-sの末尾/先行は許可されません(例外は0または1のインデックス付けです)
  • _番号行の最初の直前、または直後に0ポイントを設定できます。
  • ノー代替文字の-|または_使用することができます。
  • これはであるため、バイト単位の最短回答が優先されます。

テストケース

ここに別のテストケースがあります n=10

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

正方形の左端をどこに配置するかは明確ではありません。
ダニエルツツバリン

@DaniilTutubalin私はあなたが何を意味するのか理解していない。
ゲザケレクセニー

基本的に、ステートメントは四角形を描く必要があること(幅=高さ)と、上下を交互に繰り返すことを指定するだけです。正方形のサイズと位置に関する指示はありません。テストケースでは、2つの正方形の左端の位置が同じであることがわかります。
ダニエルツツバリン

私は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.これをかなりうまくまとめていると思います。
ゲザKerecsenyi

n = 10のテストケースは、13-> 20以降は間違っていると思います。
ニックケネディ

回答:


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.