freeCodeCamp/curriculum/challenges/chinese/10-coding-interview-prep/project-euler/problem-376-nontransitive-s...

38 lines
1.5 KiB
Markdown
Raw Normal View History

---
id: 5900f4e51000cf542c50fff7
title: 问题376不可传递的骰子集
challengeType: 5
videoUrl: ''
---
# --description--
考虑以下一组具有非标准点的骰子:
模具A1 4 4 4 4 4模具B2 2 2 5 5 5模具C3 3 3 3 3 6
两个玩家轮流挑选骰子并滚动它来玩游戏。赢得最高价值的玩家获胜。
如果第一个玩家选择A和第二个玩家选择B我们得到P第二个玩家获胜= 7/12> 1/2
如果第一个玩家选择死亡B并且第二个玩家选择死亡C我们得到P第二个玩家获胜= 7/12> 1/2
如果第一个玩家选择死C并且第二个玩家选择死A我们得到P第二个玩家获胜= 25/36> 1/2
因此无论第一个玩家选择什么模特第二个玩家都可以选择另一个模具并获得超过50的获胜机会。具有此属性的一组骰子称为非传递骰子组。
我们希望研究存在多少组非传递性骰子。我们将假设以下条件有三个六面骰子每边有1到N个点包括1和N点。具有相同点数的骰子是相等的无论骰子位于骰子的哪一侧。相同的点值可能出现在多个骰子上;如果两个玩家都滚动相同的值,则玩家不会获胜。骰子{ABC}{BCA}和{CAB}的集合是相同的集合。
对于N = 7我们发现有9780个这样的集合。 N = 30有多少
# --hints--
`euler376()`应该返回973059630185670。
```js
assert.strictEqual(euler376(), 973059630185670);
```
# --solutions--