60 lines
2.3 KiB
Markdown
60 lines
2.3 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f4f31000cf542c510006
|
|||
|
title: 'Завдання 391: Гра класики'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 302056
|
|||
|
dashedName: problem-391-hopping-game
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Нехай $s_k$ буде кількістю одиниць при записі чисел від 0 до $k$ у двійковій системі.
|
|||
|
|
|||
|
Наприклад, записуючи числа від 0 до 5 у двійковій системі, ми маємо 0, 1, 10, 11, 100, 101. Є сім одиниць, тому $s_5 = 7$.
|
|||
|
|
|||
|
Послідовність $S = \\{s_k : k ≥ 0\\}$ починається з $\\{0, 1, 2, 4, 5, 7, 9, 12, \ldots\\}$.
|
|||
|
|
|||
|
Грають два гравці. Перед початком гри обрано число $n$. Лічити $c$ починає з 0. На початку ходу гравець обирає число від 1 до $n$ (включно) та збільшує це число на $c$. Отримане значення $c$ має належати $S$. Якщо більше немає можливих ходів, то гравець програє.
|
|||
|
|
|||
|
Наприклад, з $n = 5$ і починаючи з $c = 0$:
|
|||
|
|
|||
|
- Гравець 1 обирає 4, тож $c$ стає $0 + 4 = 4$.
|
|||
|
- Гравець 2 обирає 5, тож $c$ стає $4 + 5 = 9$.
|
|||
|
- Гравець 1 обирає 3, тож $c$ стає $9 + 3 = 12$.
|
|||
|
- і т. д.
|
|||
|
|
|||
|
Зверніть увагу, що $c$ завжди належить $S$, і кожен гравець може збільшити $c$ не більше ніж на $n$.
|
|||
|
|
|||
|
Нехай $M(n)$ буде найбільшим числом, яке може обрати перший гравець у перший хід, щоб спровокувати перемогу, і $M(n) = 0$, якщо такого ходу немає. Наприклад, $M(2) = 2$, $M(7) = 1$ та $M(20) = 4$.
|
|||
|
|
|||
|
Це може бути підтверджено $\sum M{(n)}^3 = 8150$ за $1 ≤ n ≤ 20$.
|
|||
|
|
|||
|
Знайдіть $\sum M{(n)}^3$ за $1 ≤ 1000$.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`hoppingGame()` повинен повертатися як `61029882288`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(hoppingGame(), 61029882288);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function hoppingGame() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
hoppingGame();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|