2.2 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
5900f4481000cf542c50ff5b | Завдання 220: Крива Дракона | 5 | 301863 | problem-220-heighway-dragon |
--description--
Нехай D_0
— двобуквений рядок "Fa". Для n ≥ 1
, отримуємо D_n
з D_{n - 1}
за правилами перезапису рядків:
- "a" → "aRbFR"
- "b" → "LFaLb"
Отримуємо D_0
= "Fa", D_1
= "FaRbFR", D_2
= "FaRbFRRLFaLbFR" і так далі.
Ці рядки можна вважати інструкцією до програми комп'ютерної графіки, де "F"означає "просунути вперед одну одиницю", "L" – "розвернути на 90 градусів уліво", "R" – "розвернути на 90 градусів вправо", але "a" і "b" ігноруються. Комп'ютерний курсор знаходиться в початковому положенні (0,0), спрямований вгору в напрямку до (0,1).
Тоді D_n
– екзотичний малюнок, відомий як Крива Дракона порядку n
. Наприклад, D_{10}
зображено нижче; кожну "F" вважаємо за один крок, виділене місце в (18,16) – позиція, отримана після 500 кроків.

Де буде розташовано курсор після {10}^{12}
кроків в D_{50}
? Дайте свою відповідь у вигляді рядка 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