程序数学--如何粗略估计用户不会中奖的概率

发布于 2022-09-03 15:18:17 字数 1506 浏览 26 评论 0

假设最多有7个用户并发抽奖 奖品只有店铺券 规则是选取最近创建的一个店铺券再发放给用户 假设店铺券平均库存为46 下面是会不会中店铺券的概率计算

  • 非理想情况 该店铺券可用库存(库存-已领取数)< 7 此时某些用户领取店铺券失败(因为库存不足) 默认为未中奖 概率:6/46~=13%

  • 理想情况 该店铺券可用库存>= 7 均能领取成功 概率: 40/46~=87%

下面想增加领取店铺券成功的概率 假如改成选择最近创建的3个店铺券 再从中随机分配一个店铺券发放 此时概率情况会是怎样的呢?

  • 存在领取失败用户的概率 : 6/(46X3) = 3%

  • 均能领取成功概率 : (46X3-6)/46X3 = 97%

我上面的计算公式正确吗?

即使上面的公式正确的话, 也只是考虑了某一静态时间点的情况(即最高并发数那一时间点的情况), 实际情况要更复杂, 需要知道店铺券生产的平均间隔时间平均并发数以及并发之间的时间间隔。 如平均2分钟生产一个店铺券,平均库存为46, 平均并发数为5, 每隔1分钟就有一次并发抽奖, 假如是这样的话, 2分钟内似乎完全可以支持2次的并发抽奖 因为46>2X5, 但是要考虑到中间还会有个别用户抽奖, 假如每隔2秒钟便有一个用户抽奖,那么2分钟内会有60个用户抽奖(2X60/2), 那么此时店铺券就不够用了(46 < 60+2X5), 但是这些数据用mysql sql还真不好获得呢

店铺券表

ID创建时间店铺ID库存已领取张数
12016-09-17 14:58:001460
22016-09-17 15:00:002460

用户抽奖表

用户ID抽奖时间奖品
12016-09-17 14:58:01店铺券
22016-09-17 14:58:03店铺券

所以想粗略估计一下多大的概率用户不会中店铺券 这样的话才能估摸出会有多少用户不会中店铺券, 这个问题没有想象的那么简单呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情泪▽动烟 2022-09-10 15:18:17

这种看上去都不好解决的问题,又不是搞理论研究只需要结果,就应该用蒙特卡罗法呀,随随便便来个十万人次抽个奖,很直观的就知道结果了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文