抽奖发红包的逻辑怎么整
新年到,在这春节之际,笔者还在编写抽红包的应用。 因为年后要帮客户定制一款大屏抽红包的活动。
这次的要求其实比较简单。 分为两个不同的奖品:
- 抽奖所得,只需注册就可领取
- 充值权益,只需充值就可获得相应的奖品
在权益的部分,不太需要在程序层面处理,只需要优化一下兑换流程即可。
下面主要讨论抽奖所得如何这部分。
如何抽奖
抽奖,无非是给到每个来的客人,尽量公平的概率。 但是我们的活动有一定的特殊性。 需要满足几个条件:
- 前二等奖,有数量限制,概率固定,在奖品剩余数为0时概率分配给三等奖。
- 第三等奖,无数量限制,概率相对固定,可能会由其他奖品分配过来而概率增大。
以上是整理出来的之前讨论的结果。
不过,这样的做法,每个人的概率是不相等的。
为什么呢?
因为一二等奖的数量有限。 那么一天的抽奖过程可以分为两个阶段:
所有奖品都剩余
此时中奖的概率由之前设置的规则决定
一等奖不足
一等奖的概率会自动分配给三等奖,也就是说在这之后的客户的概率其实是与之前的不等的
二等奖不足
类似一等奖
这种做法的好处是,可以灵活调整中奖概率,不受物品个数限制。 坏处呢,也很明显,就是当日的前后抽奖人的概率不相等。
另外一种抽奖方式
另外一种做法是由剩余奖品决定中奖概率,就是完全模拟箱子内抽奖品的方式。
这种做法的好处是:一天以内,所有人概率均等。
坏处是:无法从全局控制中奖概率
暂不考虑。