Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-444-the-roundtable-lottery.md

62 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

---
id: 5900f52a1000cf542c51003b
title: '問題 444: 円卓宝くじ'
challengeType: 5
forumTopicId: 302116
dashedName: 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()` は文字列を返す必要があります。
```js
assert(typeof roundtableLottery() === 'string');
```
`roundtableLottery()` は文字列 `1.200856722e263` を返す必要があります。
```js
assert.strictEqual(roundtableLottery(), '1.200856722e263');
```
# --seed--
## --seed-contents--
```js
function roundtableLottery() {
return true;
}
roundtableLottery();
```
# --solutions--
```js
// solution required
```