57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
---
|
|
id: 5900f5221000cf542c510033
|
|
title: '問題 436: 不公平な賭け'
|
|
challengeType: 5
|
|
forumTopicId: 302107
|
|
dashedName: problem-436-unfair-wager
|
|
---
|
|
|
|
# --description--
|
|
|
|
ジュリーは、姉のルイーズに次のような賭けを提案しました。
|
|
|
|
誰が皿を洗うかを決めるために、運で決まるゲームをするというものです。
|
|
|
|
このゲームでは、0 から 1 の間に一様に分布する独立的な乱数を作る生成器を使います。
|
|
|
|
ゲームは $S = 0$ から開始します。
|
|
|
|
先手であるルイーズは、生成器から得られるさまざまな乱数を $S$ に加えていき、$S > 1$ になったら止め、最後の乱数 '$x$' を記録します。
|
|
|
|
後手のジュリーは、生成器から得られる色々な乱数を引き続き $S$ に加えていき、$S > 2$ になったら止め、最後の乱数 '$y$' を記録します。
|
|
|
|
最大の数を記録した方が勝ち、負けた方は皿洗いをします。すなわち、$y > x$ であれば後手の勝ちです。
|
|
|
|
例えば、先手が生成器から 0.62 と 0.44 を得た場合、$0.62 + 0.44 > 1$ なので先手のターンが終わり、$x = 0.44$ となります。 後手が 0.1, 0.27, 0.91 を得た場合、$0.62 + 0.44 + 0.1 + 0.27 + 0.91 > 2$ なので後手のターンが終わり、$y = 0.91$ となります。 $y > x$ なので後手の勝ちです。
|
|
|
|
ルイーズは少し考えてから、「不公平だわ」と抗議しました。
|
|
|
|
後手が勝つ確率を求めなさい。 回答は、四捨五入して小数第 10 位まで求め、0.abcdefghij の形式にすること。
|
|
|
|
# --hints--
|
|
|
|
`unfairWager()` は `0.5276662759` を返す必要があります。
|
|
|
|
```js
|
|
assert.strictEqual(unfairWager(), 0.5276662759);
|
|
```
|
|
|
|
# --seed--
|
|
|
|
## --seed-contents--
|
|
|
|
```js
|
|
function unfairWager() {
|
|
|
|
return true;
|
|
}
|
|
|
|
unfairWager();
|
|
```
|
|
|
|
# --solutions--
|
|
|
|
```js
|
|
// solution required
|
|
```
|