回顾:骰子摊位的胜算
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 18 课,共 64 课。
挑战
中等该给学校义卖会的骰子摊定价了。每位访客掷两颗骰子:点数总和决定打开哪个奖品盒,掷出对子(两颗骰子点数相同)还能赢得一张奖励券。tokens 保存每个盒子里的代币数:
起始代码模拟了 2400 次访客掷骰子,并将结果存入 first 和 second;程序会读取一个目标点数总和。打印:
- 掷出对子(两颗骰子点数相同)的概率,
- 点数总和达到或超过目标的概率,
- 在掷出对子后,点数总和达到或超过目标的概率,
- 每位访客的预期代币数,将每种点数总和在模拟中的占比作为其概率。
概率保留 3 位小数,代币数保留 2 位小数。使用另一组模拟数据,并将目标设为 6 时:
Chance of doubles: 0.171
Chance of 6 or more: 0.705
Chance of 6 or more after doubles: 0.616
Expected tokens per visit: 2.16亲手试试
import numpy as np
import pandas as pd
goal = int(input())
# 奖品箱中各个点数总和对应的代币数量,按 2 到 12 的顺序排列
tokens = np.array([12, 0, 0, 3, 0, 5, 0, 3, 0, 0, 12])
# 不要修改下面的代码:模拟访问 2400 次,每次掷两颗骰子
rng = np.random.default_rng(18)
first = rng.integers(1, 7, size=2400)
second = rng.integers(1, 7, size=2400)
# 在下方编写你的代码
机器学习统计学中的所有课
自己练习: Python 在线编译器