freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-301-nim.russian.md

56 lines
3.3 KiB
Markdown
Raw Normal View History

---
id: 5900f4991000cf542c50ffab
challengeType: 5
title: 'Problem 301: Nim'
videoUrl: ''
localeTitle: 'Проблема 301: Его'
---
## Description
<section id="description"> Ним - игра, играемая с кучами камней, где два игрока берут ее в свою очередь, чтобы удалить любое количество камней из любой кучи, пока камни не останутся. <p> Мы рассмотрим версию Nim с нормальной загрузкой с тремя кучками, которая работает следующим образом: </p><ul><li><p> В начале игры есть три кучи камней. </p></li><li><p> В свою очередь игрок удаляет любое положительное количество камней из одной кучи. </p></li><li><p> Первый игрок, который не может двигаться (потому что камни остаются), теряет. </p><p> Если (n1, n2, n3) указывает позицию Nim, состоящую из кучек размера n1, n2 и n3, тогда существует простая функция X (n1, n2, n3) - которую вы можете искать или пытаться вывести для себя - это возвращает: ноль, если с совершенной стратегией игрок, который собирается двигаться, в конечном счете проиграет; или ненулевое, если с идеальной стратегией игрок, который собирается двигаться, в конечном счете победит. Например, X (1,2,3) = 0, потому что, независимо от того, что делает текущий игрок, его оппонент может ответить движением, которое уходит две кучи одинакового размера, после чего каждый ход текущего игрока может быть отражен его противником до тех пор, пока не останутся камни; поэтому текущий проигрыватель проигрывает. Проиллюстрировать: </p></li><li><p> текущий игрок переходит в (1,2,1) </p></li><li><p> противник переходит к (1,0,1) </p></li><li><p> текущий игрок переходит в (0,0,1) </p></li><li><p> противник переходит к (0,0,0), и поэтому выигрывает. </p></li></ul><p> Для скольких положительных целых чисел n ≤ 230 X (n, 2n, 3n) = 0? </p></section>
## Instructions
<section id="instructions">
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: <code>euler301()</code> должен возвращать 2178309.
testString: 'assert.strictEqual(euler301(), 2178309, "<code>euler301()</code> should return 2178309.");'
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function euler301() {
// Good luck!
return true;
}
euler301();
```
</div>
</section>
## Solution
<section id='solution'>
```js
// solution required
```
</section>