A もGosper曲線として知られているフロースネークは、単純なプロセスの各注文/反復してサイズが指数関数的に増殖する、フラクタル曲線です。以下は、建設の詳細とさまざまな注文のいくつかの例です。
Order 1 Flow Snake:
____
\__ \
__/
注文2フロースネーク:
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
Order 3 Flow Snake:
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
建設
7個のエッジと8個の頂点を含むパスで構成される順序1 Flow Snakeを考えてみましょう(以下にラベルを付けます。実行可能性のために拡大します)。
4____5____6
\ \
3\____2 7\
/
0____1/
次に、次の注文ごとに、エッジをこの元の注文1パターンの回転バージョンに置き換えるだけです。次の3つのルールを使用して、エッジを置き換えます。
1水平エッジの場合、元の形状にそのまま置き換えます。
________
\ \
\____ \
/
____/
2について/
(エッジ12
上記構成で)、次の回転バージョンに置き換えます。
/
/ ____
\ / /
\/ /
/
____/
3について\
エッジ(34
及び67
上記)、次の回転バージョンに置き換えます。
/
/ ____
\ \ \
\ \ \
\ /
\/
したがって、たとえば、順序1の頂点がラベル付けされた順序2は次のようになります。
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
ここで、高次の場合は、現在のレベルを長さ/
1、1 \
または2のエッジに分割し_
、プロセスを繰り返します。置き換えた後でも、連続する2つのエッジ間の共通の頂点は一致していることに注意してください。
チャレンジ
N
STDIN / ARGV / function引数または最も近い同等物を介して単一の整数を受け取り、N
STDOUTにFlow Snake の順序を出力する完全なプログラムの関数を作成する必要があります。- 入力整数は常により大きいです
0
。 - パターンの一部ではない先頭スペースはありません。
- 末尾のスペースがないか、パターンを埋めて最小の境界矩形を完全に埋めるのに十分な末尾のスペースがありません。
- 末尾の改行はオプションです。
おもしろ情報
- Flow SnakesはSnow Flakesの言葉遊びであり、このパターンは注文2以上に似ています
- パターンは全体に流れる単一のパスで構成されるため、フローとスネークは実際にパターンの一部を果たします。
- 慎重に気付くと、次数2(およびそれ以上)のパターンは、現在のエッジと前のエッジの共通の頂点を中心に回転した次数1のパターンで構成されます。
- Flow Snakesの非ASCIIバリアントは、ここと他のいくつかの場所にあります。
これはコードゴルフなので、バイト単位の最短コードが勝ちです!
リーダーボード
回答が表示されるようにするには、次のマークダウンテンプレートを使用して、すべての回答を見出しで開始してください。
# Language Name, N bytes
N
提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:
# Ruby, <s>104</s> <s>101</s> 96 bytes