あなたのタスク:Kochスノーフレークをn番目の深さまで生成します。完全なKochスノーフレークを作成する必要はありません。開始三角形の片側だけです。コッホフレーク上のウィキペディア:https://en.wikipedia.org/wiki/Koch_snowflake。
ルール:
- プログラムは、コッホ雪片の片側をn番目の深さまで生成する必要があります。
- 出力はASCIIでなければなりません。
- あなたはあり全体の雪片を生成します。これは必須ではありません。
- 入力/出力および抜け穴とスタッフの標準ルールが適用されます。
- すべての文字が互いに適切な場所にある限り、空白は重要ではありません。
- 最短のコードが勝ちます!
テストケース:
n = 0:
__
n = 1:
__/\__
n = 2:
__/\__
\ /
__/\__/ \__/\__
n = 3:
__/\__
\ /
__/\__/ \__/\__
\ /
/_ _\
\ /
__/\__ __/ \__ __/\__
\ / \ / \ /
__/\__/ \__/\__/ \__/\__/ \__/\__
これが理にかなっているといいのですが。各テストケースで、フラクタルは長さが等しい3つの部分に分割できることに注意してください。また、各スノーフレークの幅は、前世代のスノーフレークの幅の3倍であることに注意してください。
FYI、これはだまされやすい人のいないことが合意された本。
—
同志SparklePony
n番目のコッホ曲線の適切なASCII表現が何であるかを適切に定義したとは思わない。
—
orlp
比率が理にかなっているかどうかはわかりません。
—
Ørjanヨハンセン
__/\__
2つの下線で使用される非重複は、各反復を一貫して以前の反復の3倍にしました。下線を1つだけ使用すると、n = 3で本当に厄介になり始める矛盾が生じるようです。中央部分はの結果として、唯一の幅10を有している、例えば、外側部12の幅有する/_
と_\
それがあまりにも窮屈されています。そして、その前でも_
、/
との幅の2倍に拡大しています\
。
/_
と_\
は、本当に致命的な部分であると思います。アンダースコアは、/
andと同じ位置にある必要があるため、下線を引く必要があり\
ます。それが完了すると、物事はn = 1以降から3倍に拡大できます(ただし、n = 0は適合しません。)
残念ながら、いいえ、n = 3が54 = 2 * 3 ^ 3ではなく52の幅を持っていることから明らかなように、中央部の幅は外側の部分と一致していません。これらのいずれかを試してください。n = 4またはn = 5からしか表示されない部品を含む逆さまのバージョンを含めました。アンダースコアがドロップされる場所は上向きのものとは異なります。
—
Ørjanヨハンセン