|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2022-12-23 17:34 编辑
上一讲我们搞定高斯分布,本次来实战抽奖!
现在有一个抽奖活动:
有一个箱子,里面有红色和蓝色小球共 5 个。其中蓝色 4 个,红色 1 个。
每位鱼油上前抽奖,抽到红色(中奖率 20%)获得价值 1000 元的奖品,蓝色是普通纪念品。
共有 1000 位鱼油,那么小甲鱼老师需要花多少钱刚刚好购买奖品呢?
理论上可能所有人都中,也可能都不中,就不能以极端条件来计算投入成本。
那么小甲鱼老师到底要最少花多少,才能一步到位完成这次活动呢?
如果你想到这个答案:
恭喜鱼油,提供了一个错误答案~
作为程序员,既然有需求,我们就来想办法实现!
抽奖肯定是随机活动,所以继续用 NumPy 中的随机函数:
random 中有一个 choice() 可以生成随机数:
第一个参数是随机生成数的种类,第二个是数量。
既然中奖不中奖只有两个结果,我们就可以用 0 和 1 代替,修改第一个参数为 2:
p[0.8,0.2] 代表 0 出现概率 0.8,1 出现概率 0.2 。
上面是一次时间,既然为了找出最理想的方案,肯定要多次模拟啦!
我们可以修改第二个参数:
生成一个 50*100 的数组,每行 100 个结果,共 50 行,等同于模拟 50 次。
如果我们把每一行加起来,然后 *1000 就能算出需要花多少钱。
要实现上面的操作,就要用到 sum():
这样每一行结果就知道啦!
大概看一下,没有超过 30 个人中奖的情况。
就意味着花 30*1000,3W 人名币一步到位!
当然这只是 50 次模拟,我们改成 999 次:
生成的结果太多,没有全部截取,这样就不能肉眼看了。
用 hist() 看下图:
试验次数一多,超过 30 的情况会有,但不多。
所以准备 35*1000 来买奖品,肯定够用!
二项分布
上面我们的操作,其实叫做二项分布。
在概率论和统计学中,二项分布:
是 n 个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为 p。
说人话就是:
只有两种结果:中奖/不中奖,抽奖人数 100 就是 n,每个人抽中概率都是相同的 p 。
直接套入到 Numpy 中的 binomial():
为了更加逼真,直接模拟 99999 次。
用 hist() 看下图:
这个图,直接给小甲鱼老师看,掏 3.5W 解决问题!
下一讲我们学习泊松分布。
源代码:
23TwoProba.zip
(378 Bytes, 下载次数: 1, 售价: 6 鱼币)
如果有收获,别忘了评分 :
如果想看更多,请订阅 淘专辑( 传送门)( 不喜欢更要订阅 ) |
|