Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-444-the-roundtable-lottery.md
2022-01-23 00:08:20 +09:00

2.7 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f52a1000cf542c51003b 問題 444: 円卓宝くじ 5 302116 problem-444-the-roundtable-lottery

--description--

p 人のグループで円卓に座り、宝くじのトレーディングゲームを行うことにしました。 最初に、まだスクラッチが削られていない宝くじが、1 人に 1 枚ずつ無作為に割り当てられます。 それぞれのくじのスクラッチを削ると 1 ポンドから p ポンドまでの賞金 (1 ポンド単位) が書いてあり、金額はすべて異なります。 ゲームの目的は、各自が自分のくじの賞金を最大にしてゲームから退場することです。

任意の人が最初のプレイヤーに選ばれます。 円卓の席の順に、各プレイヤーは 2 つの選択肢のうち 1 つを選択します。

  1. くじを削り、プレイヤー全員にくじの賞金額を伝える。
  2. まだ削られていない自分のくじを前のプレイヤーの削られたくじと交換し、そのくじを受け取ってゲームから退場する。 前のプレイヤーは新たに割り当てられたくじを削り、プレイヤー全員にくじの賞金額を伝える。

すべてのくじが削られたときにゲームが終了します。 円卓に残ったすべてのプレイヤーは、その時点で持っているくじを持って退場しなければなりません。

各プレイヤーが、自分のくじの賞金額の期待値を最大化するための最適な戦略を使用すると仮定します。

p 人のプレイヤーで行うゲームが終了するときに円卓に残っているプレイヤーの期待人数を、E(p) で表します (例: 有効数字 5 桁に四捨五入すると E(111) = 5.2912)。

S_1(N) = \displaystyle\sum_{p = 1}^N E(p) とします。

k > 1 のとき、S_k(N) = \displaystyle\sum_{p = 1}^N S_{k - 1}(p) とします。

S_{20}({10}^{14}) を求め、有効数字 10 桁に四捨五入された科学的記数法の文字列で答えなさい。 小文字 e で仮数部と指数部を区切ること。 例えば、S_3(100) の回答は 5.983679014e5 になります。

--hints--

roundtableLottery() は文字列を返す必要があります。

assert(typeof roundtableLottery() === 'string');

roundtableLottery() は文字列 1.200856722e263 を返す必要があります。

assert.strictEqual(roundtableLottery(), '1.200856722e263');

--seed--

--seed-contents--

function roundtableLottery() {

  return true;
}

roundtableLottery();

--solutions--

// solution required