Files

2.3 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f4f31000cf542c510006 Завдання 391: Гра класики 5 302056 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.

assert.strictEqual(hoppingGame(), 61029882288);

--seed--

--seed-contents--

function hoppingGame() {

  return true;
}

hoppingGame();

--solutions--

// solution required