23 - 小甲鱼老师抽奖最少花多少能一步到位?|【二项分布】
本帖最后由 不二如是 于 2022-12-23 17:34 编辑上一讲我们搞定高斯分布,本次来实战抽奖!
现在有一个抽奖活动:
有一个箱子,里面有红色和蓝色小球共 5 个。其中蓝色 4 个,红色 1 个。
每位鱼油上前抽奖,抽到红色(中奖率 20%)获得价值 1000 元的奖品,蓝色是普通纪念品。
共有 1000 位鱼油,那么小甲鱼老师需要花多少钱刚刚好购买奖品呢?
理论上可能所有人都中,也可能都不中,就不能以极端条件来计算投入成本。
那么小甲鱼老师到底要最少花多少,才能一步到位完成这次活动呢?
如果你想到这个答案:
**** Hidden Message *****
恭喜鱼油,提供了一个错误答案~
作为程序员,既然有需求,我们就来想办法实现!
抽奖肯定是随机活动,所以继续用 NumPy 中的随机函数:
random 中有一个 choice() 可以生成随机数:
第一个参数是随机生成数的种类,第二个是数量。
既然中奖不中奖只有两个结果,我们就可以用 0 和 1 代替,修改第一个参数为 2:
p 代表 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 解决问题!
下一讲我们学习泊松分布。
源代码:
如果有收获,别忘了评分{:10_281:} :
http://xxx.fishc.com/forum/201709/19/094516hku92k2g4kefz8ms.gif
如果想看更多,请订阅 淘专辑(传送门)(不喜欢更要订阅{:10_297:} ) 下次我的项目抽奖就用 NumPy 架构啦!!! 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 下次我的项目抽奖就用 NumPy 架构啦 厉害厉害
页:
[1]