Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-376-nontransitive-sets-of-dice.md

70 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

---
id: 5900f4e51000cf542c50fff7
title: '問題 376: サイコロの非推移的集合'
challengeType: 5
forumTopicId: 302038
dashedName: problem-376-nontransitive-sets-of-dice
---
# --description--
通常とは異なる目を持つ、以下のようなサイコロの集合について考えます。
$$\begin{array}{} \text{サイコロ A: } & 1 & 4 & 4 & 4 & 4 & 4 \\\\
\text{サイコロ B: } & 2 & 2 & 2 & 5 & 5 & 5 \\\\ \text{サイコロ C: } & 3 & 3 & 3 & 3 & 3 & 6 \\\\
\end{array}$$
ゲームでは、2 人のプレイヤーが交互にサイコロを選び、振ります。 最大の目を出したプレイヤーが勝者です。
先手がサイコロ $A$ を選び、後手がサイコロ $B$ を選んだ場合
$P(\text{後手が勝つ確率}) = \frac{7}{12} > \frac{1}{2}$
先手がサイコロの $B$ を選び、後手がサイコロ $C$ を選んだ場合
$P(\text{後手が勝つ確率}) = \frac{7}{12} > \frac{1}{2}$
先手がサイコロの $C$ を選び、後手がサイコロ $A$ を選んだ場合
$P(\text{後手が勝つ確率}) = \frac{25}{36} > \frac{1}{2}$
このように、先手がどのサイコロを選んでも、後手が別のサイコロを選んで勝つことができる確率は 50% を超えます。 このような性質を持つサイコロの集合を、サイコロの非推移的集合と呼ぶことにします。
非推移的サイコロの集合がいくつ存在するのかを調べてみます。 以下の条件を仮定します。
- 6 面体で、各面に 1 から $N$ までの目が書かれたサイコロが 3 つあります。
- サイコロのどの面に目が書かれているかに関係なく、同じ目の集合を持つサイコロは同じものとみなされます。
- 複数のサイコロで同じ目が出る場合があります。両方のプレイヤーが同じ目を出した場合、どちらも勝ちません。
- サイコロの集合 $\\{A, B, C\\}$, $\\{B, C, A\\}$, $\\{C, A\\}$ は同じ集合です。
$N = 7$ のとき、そのような集合は 9780 個存在します。
$N = 30$ のとき、そのような集合はいくつ存在しますか。
# --hints--
`nontransitiveSetsOfDice()``973059630185670` を返す必要があります。
```js
assert.strictEqual(nontransitiveSetsOfDice(), 973059630185670);
```
# --seed--
## --seed-contents--
```js
function nontransitiveSetsOfDice() {
return true;
}
nontransitiveSetsOfDice();
```
# --solutions--
```js
// solution required
```