Files

51 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 5900f51a1000cf542c51002d
title: 'Завдання 430: Перевертання рядів'
challengeType: 5
forumTopicId: 302101
dashedName: problem-430-range-flips
---
# --description--
Диски $N$ розміщені в ряд, пронумеровані зліва направо від 1 до $N$.
Кожен диск має чорну і білу сторону. Спочатку всі диски перевернуті білою стороною вгору.
При кожному перевертанні випадково вибираються два, не обов'язково різні, цілі числа $A$ та $B$ між 1 і $N$ (включно). Перевертаються усі диски з номерами від $A$ до $B$ (включно).
Наведений приклад показує випадок, де $N = 8$. При першому перевертанні $A = 5$, а $B = 2$, при другому перевертанні $A = 4$, а $B = 6$.
<img class="img-responsive center-block" alt="приклад, де N = 8, після першого перевертання A = 5, а B = 2, після другого A = 4, а B = 6" src="https://cdn.freecodecamp.org/curriculum/project-euler/range-flips.gif" style="background-color: white; padding: 10px;" />
Нехай $E(N, M)$ — це очікувана кількість дисків, які будуть перевернуті білою стороною вгору після $M$ перевертань. Можна перевірити, що $E(3, 1) = \frac{10}{9}$, $E(3, 2) = \frac{5}{3}$, $E(10, 4) ≈ 5.157$ та $E(100, 10) ≈ 51.893$.
Знайдіть $E({10}^{10}, 4000)$. Дайте відповідь, округлену до 2 знаків після коми.
# --hints--
`rangeFlips()` має видати `5000624921.38`.
```js
assert.strictEqual(rangeFlips(), 5000624921.38);
```
# --seed--
## --seed-contents--
```js
function rangeFlips() {
return true;
}
rangeFlips();
```
# --solutions--
```js
// solution required
```