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

3.1 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f5431000cf542c510055 問題 470: スーパー Ramvok 5 302146 problem-470-super-ramvok

--description--

Ramvok というゲームを 1 回プレイすることについて考えます。

ゲームが続いている間のターンの最大数を t とします。 t = 0 の場合、ゲームはすぐに終了します。 それ以外の場合、各ターン i でプレイヤーがサイコロを振ります。 サイコロを振った後、i < t の場合は、そのプレイヤーはゲームをやめてサイコロの目と同額の賞金を受け取るか、または、出目を捨てて次のターンで再挑戦することができます。 $i = t$の場合、出目を捨てることはできず、賞金を受け入れなければなりません。 ゲーム開始前、プレイヤーは t を選び、そのプレイヤーはある定数 c に対して前金 ct を支払う必要があります。 c = 0 の場合、(前金なしで) t を無制限にすることを選択できます 。 偏りのない d 面のサイコロとコスト定数 c が与えられるとき、Ramvok のゲームを最適に 1 回プレイすることでプレイヤーが受け取る期待利益 (純利益) を R(d, c) とします。 例えば、R(4, 0.2) = 2.65 です。 プレイヤーが前金をいくらでも支払えるほどの資金を持っていると仮定します。

次に、スーパー Ramvok を 1 回プレイすることについて考えます。

スーパー Ramvokでも Ramvok のゲームが繰り返し行われますが、ルールが少し異なります。 各ゲームの後、サイコロが変更されるのです。 変更のプロセスは次のとおりです。サイコロが 1 回振られ、上になった面に目があれば、その面は目のない面に変えられます。 上になった面がすでに空白の場合は、元の目の値に戻されます。 変更が行われた後、Ramvok ゲームの次の 1 回をスタートできます (そのような 1 回のゲーム中に、各ターンで、目のある面が出るまでサイコロを振ります)。 プレイヤーは、どの面が空白で、どの面が空白でないかを常に知っています。 スーパー Ramvok のゲームは、サイコロのすべての面が空白になると終了です。

偏りのない d 面のサイコロ (開始時はすべての面に目がある) とコスト定数 c が与えられるとき、スーパー Ramvok を最適に 1 回プレイすることでプレイヤーが受け取る期待利益を S(d, c) とします。 例えば、S(6, 1) = 208.3 です。

F(n) = \sum_{4 ≤ d ≤ n} \sum_{0 ≤ c ≤ n} S(d, c) と定義します。

F(20) を計算し、最も近い整数に四捨五入して答えなさい。

--hints--

superRamvok()147668794 を返す必要があります。

assert.strictEqual(superRamvok(), 147668794);

--seed--

--seed-contents--

function superRamvok() {

  return true;
}

superRamvok();

--solutions--

// solution required