54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f4761000cf542c50ff88
|
|||
|
title: 'Завдання 265: Двійкові кола'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 301914
|
|||
|
dashedName: problem-265-binary-circles
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
$2^N$ двійкові цифри можуть бути розміщені в колі так, що всі $N$-цифрові підпослідовності за годинниковою стрілкою відрізняються.
|
|||
|
|
|||
|
Для $N = 3$, два таких кругових розміщення можливі, ігноруючи обертання:
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="два кругових розміщення для N = 3" src="https://cdn.freecodecamp.org/curriculum/project-euler/binary-circles.gif" style="background-color: white; padding: 10px;" />
|
|||
|
|
|||
|
Для першого розташування, 3-значні підпослідовності за годинниковою стрілкою: 000, 001, 010, 101, 011, 111, 110 і 100.
|
|||
|
|
|||
|
Кожне кругове розташування може бути закодовано як число шляхом конкатенації двійкових цифр, починаючи з підпослідовності всіх нулів як найбільш значущих бітів і продовжуючи за годинниковою стрілкою. Таким чином, два варіанти розміщення для $N = 3$ представлені як 23 і 29:
|
|||
|
|
|||
|
$${00010111}_2 = 23\\\\
|
|||
|
{00011101}_2 = 29$$
|
|||
|
|
|||
|
Називаючи $S(N)$ сумою унікальних числових подань, ми можемо побачити, що $S(3) = 23 + 29 = 52$.
|
|||
|
|
|||
|
Знайдіть $S(5)$.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`binaryCircles()` має повернути `209110240768`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(binaryCircles(), 209110240768);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function binaryCircles() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
binaryCircles();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|