Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-260-stone-game.md
2022-01-23 00:08:20 +09:00

1.9 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f4701000cf542c50ff83 問題 260: 石取りゲーム 5 301909 problem-260-stone-game

--description--

石を積み上げた 3 つの山と 2 人のプレイヤーでゲームをします。

各プレイヤーは自分のターンで、石の山から 1 つ以上の石を取ります。 ただし、複数の山から石を取る場合は、選んだ山のそれぞれから同じ数の石を取らなければなりません。

つまり、プレイヤーは次のいずれかのパターンで個数 N > 0 を選び、山から取ります。

  • 1 つの山から N 個の石を取る。
  • 2 つの山から N 個ずつ石を取る (計: 2N 個)。
  • 3 つの山から N 個ずつ石を取る (計: 3N 個)。

最後の石を取ったプレイヤーの勝ちです。

勝利構成とは、先手が必ず勝てる構成です。

例えば、(0,0,13), (0,11,11), (5,5,5) は、先手が即座にすべての石を取れるので、勝利構成です。

敗北構成とは、先手が何をしようと 後手が必ず勝てる構成です。

例えば、(0,1,2) と (1,3,3) は敗北構成です。ルールに従う限り、何をしても 後手の勝利構成になります。

x_i ≤ y_i ≤ z_i ≤ 100 として、すべての敗北構成 (x_i,$y_i$,$z_i$) について考えます。 それらの構成について \sum (x_i + y_i + z_i) = 173\\,895 であることを確認できます。

x_i ≤ y_i ≤ z_i ≤ 1000 として、(x_i,$y_i$,$z_i$) が敗北構成の全範囲を表すとき、\sum (x_i + y_i + z_i) を求めなさい。

--hints--

stoneGame()167542057 を返す必要があります。

assert.strictEqual(stoneGame(), 167542057);

--seed--

--seed-contents--

function stoneGame() {

  return true;
}

stoneGame();

--solutions--

// solution required