freeCodeCamp/curriculum/challenges/chinese/10-coding-interview-prep/project-euler/problem-84-monopoly-odds.md

3.0 KiB
Raw Blame History

id challengeType videoUrl localeTitle
5900f3c11000cf542c50fed3 5 问题84垄断赔率

Description

在游戏“大富翁”中,标准板的设置方式如下:

GO A1 CC1 A2 T1 R1 B1 CH1 B2 B3 JAIL H2

C1 T2

U1 H1

C2 CH3

C3 R4

R2 G3

D1 CC3

CC2 G2

D2 G1

D3 G2J F3 U2 F2 F1 R3 E3 E2 CH2 E1 FP

玩家在GO广场上开始并在两个6面骰子上添加分数以确定它们以顺时针方向前进的方格数。如果没有任何进一步的规则我们期望以相同的概率访问每个广场2.5。但是登陆G2JGo To JailCC社区胸部和CH机会会改变这种分布。除了G2J还有来自CC和CH的一张牌命令玩家直接进入监狱如果玩家连续三次打败他们不会推进他们的第三次掷骰结果。相反他们直接进入监狱。在游戏开始时CC和CH卡被洗牌。当玩家登陆CC或CH时他们从相应堆的顶部取出一张牌并按照说明后将其返回到堆的底部。每堆中有16张牌但出于这个问题的目的我们只关心命令运动的牌;任何与运动无关的指令都将被忽略玩家将保留在CC / CH广场上。公益金2/16卡前往GO去JAIL

机会10/16卡前往GO转到JAIL转到C1转到E3转到H2转到R1转到下一个R铁路公司转到下一个R转到下一个U公用事业公司返回3个方块。

这个问题的核心是访问特定广场的可能性。也就是说在滚动之后在该正方形处完成的概率。由于这个原因应该清楚的是除了完成它的概率为零的G2J之外CH方块将具有最低概率因为5/8请求移动到另一个方格并且它是最终的玩家在我们感兴趣的每一卷上完成的方格。我们不会区分“Just Visiting”和被送到JAIL我们也会忽略关于要求双重“离开监狱”的规则假设他们支付下一轮出去的费用。通过从GO开始并按顺序从00到39对方块进行编号我们可以连接这些两位数字以产生与方块组对应的字符串。统计上可以看出按顺序排列的三个最受欢迎的正方形是JAIL6.24= Square 10E33.18= Square 24和GO3.09= Square 00.所以这三个最受欢迎的正方形可以使用六位数模态字符串列出102400。如果使用两个4面骰子而不是使用两个6面骰子则找到六位数模态字符串。

Instructions

Tests

tests:
  - text: <code>euler84()</code>应返回101524。
    testString: assert.strictEqual(euler84(), 101524);

Challenge Seed

function euler84() {
  // Good luck!
  return true;
}

euler84();

Solution

// solution required

/section>