2.0 KiB
2.0 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f4481000cf542c50ff5b | 問題 220: ハイウェイドラゴン | 5 | 301863 | problem-220-heighway-dragon |
--description--
D_0
を 2 文字の文字列 "Fa" とします。 n ≥ 1
のとき、次の変換規則によって D_{n - 1}
から D_n
を得ます。
- "a" → "aRbFR"
- "b" → "LFaLb"
したがって、D_0
= "Fa", D_1
= "FaRbFR", D_2
= "FaRbFRRLFaLbFR" などとなります。
これらの文字列は、コンピュータグラフィックスプログラムに対する命令として解釈できます。"F" は「1単位、前へ描け」、"L" は「90 度左を向け」、"R" は「90 度右を向け」を意味し、"a" と "b" は無視されます。 コンピューターカーソルの最初の位置は (0,0) で、上の (0,1) を向いています。
D_n
は、n
次のハイウェイドラゴンとして知られる風変わりな図です。 例えば、D_{10}
は下図のようになります。それぞれの "F" を 1 ステップと数え、(18,16) の色付きの点は 500 ステップで到達した位置です。

D_{50}
において、{10}^{12}
ステップ後のカーソルの位置を求めなさい。 回答は、スペースなしの x,y
形式の文字列にすること。
--hints--
heighwayDragon()
は文字列を返す必要があります。
assert(typeof heighwayDragon() === 'string');
heighwayDragon()
は文字列 139776,963904
を返す必要があります。
assert.strictEqual(heighwayDragon(), '139776,963904');
--seed--
--seed-contents--
function heighwayDragon() {
return true;
}
heighwayDragon();
--solutions--
// solution required