一、说明
我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克·莫斯特勒(Frederick Mosteller)的《概率论中的五十个具有挑战性的问题与解决方案》)一书。我认为创建一个系列来讨论这些可能作为面试问题出现的迷人问题会很有趣。每篇文章只有 1 个问题,使其成为一个总共有 50 个部分的系列。让我们潜入并激活我们的脑细胞!
图片由作者使用 DALL-E 3 提供。
在一个普通的嘉年华游戏中,玩家将一分钱从大约 5 英尺的距离扔到一张 1 英寸正方形的桌子表面上。如果一分钱(直径 3/4 英寸)完全落在正方形内,玩家将获得 5 分钱,但不会拿回他的一分钱;否则他会失去一分钱。
问:如果一分钱落在桌子上,他获胜的机会有多大?
溶液:
为了获胜,一分钱必须完全落在正方形内。这意味着硬币的中心不得在正方形任何一侧的 3/8 英寸(硬币半径)范围内,如下所示:
硬币的中心不得在正方形任何一侧的 3/8 英寸范围内。
这种约束导致硬币的中心必须落入一个区域(由黄色方块表示),如下所示。正方形的边长可以很容易地计算为 1/4 英寸。
硬币的中心必须落入边长为 1/4 英寸的黄色正方形中。
获胜的概率等同于硬币中心位于黄色方块上的概率与硬币中心位于蓝色方块中任何区域的概率之比。下面,我们可以计算这个比率并得出结论,获胜的概率是 1/16。
获胜概率。
总之,如果一分钱落在桌子上,他获胜的机会是 1/16。
Python 代码:
import numpy as np
n_simulations = 1000000
total_win = 0
for _ in range(n_simulations):
# Let the lower left corner of the square be the coordinate (0,0)
# Let the coordinate of the center of the coin be (x,y)
x, y = np.random.random(size=2)
# Center of the coin must NOT be within 3/8 inch of any side of the square.
if (x > 3/8) and (y > 3/8) and (1-x > 3/8) and (1-y > 3/8):
total_win += 1
prob_win = total_win/n_simulations
print(f"Probability of winning = {prob_win:.4f}")
# Output:
# Probability of winning = 0.0625 (=1/16)
这就是这个硬币📀问题的全部内容。欢迎任何反馈或问题!该代码可在我的 Github 上找到。请继续关注本系列的下一部分!:)