--- id: 5900f4ed1000cf542c50fffe title: 'Завдання 384: послідовність Рудіна-Шапіро' challengeType: 5 forumTopicId: 302048 dashedName: problem-384-rudin-shapiro-sequence --- # --description-- Визначте послідовність $a(n)$ як кількість прилеглих пар у бінарному розширенні $n$ (можливо, вони перекриватимуть одна одне). Наприклад: $a(5) = a({101}_2) = 0$, $a(6) = a({110}_2) = 1$, $a(7) = a({111}_2) = 2$ Визначте послідовність $b(n) = {(-1)}^{a(n)}$. Така послідовність має назву "Послідовність Рудіна-Шапіро". Також розглянемо суматорну послідовність $b(n)$: $s(n) = \displaystyle\sum_{i = 0}^{n} b(i)$. Перші декілька значень цих послідовностей: $$\begin{array}{lr} n & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 \\\\ a(n) & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 2 \\\\ b(n) & 1 & 1 & 1 & -1 & 1 & 1 & -1 & 1 \\\\ s(n) & 1 & 2 & 3 & 2 & 3 & 4 & 3 & 4 \end{array}$$ Послідовність $s(n)$ має особливу властивість, коли усі її елементи позитивні, а кожне позитивне ціле число $k$ виникає рівно $k$ разів. Визначте $g(t, c)$, with $1 ≤ c ≤ t$, як індекс у $s(n)$ для якого $t$ виникає у $c$-й раз у $s(n)$. Наприклад: $g(3, 3) = 6$, $g(4, 2) = 7$ and $g(54321, 12345) = 1\\,220\\,847\\,710$. Нехай $F(n)$ буде послідовністю Фібоначчі, що визначається наступним: $$\begin{align} & F(0) = F(1) = 1 \text{ and} \\\\ & F(n) = F(n - 1) + F(n - 2) \text{ for } n > 1. \end{align}$$ Визначити $GF(t) = g(F(t), F(t - 1))$. Знайти $\sum GF(t)$ for$ 2 ≤ t ≤ 45$. # --hints-- `rudinShapiroSequence()` має повернути `3354706415856333000`. ```js assert.strictEqual(rudinShapiroSequence(), 3354706415856333000); ``` # --seed-- ## --seed-contents-- ```js function rudinShapiroSequence() { return true; } rudinShapiroSequence(); ``` # --solutions-- ```js // solution required ```