业务总结003:抽奖活动

C 端抽奖 UI 效果:
在这里插入图片描述

一、抽奖活动模型

在这里插入图片描述
上图是大概的抽奖活动模型,可能一个抽奖活动会持续很多天,这里活动抽奖规则、奖励库存都采用的都是当日的概念,当然也可以采用活动持续时长的概念,具体看产品的意愿,毕竟产品大大说了算。

二、抽奖算法

2.1 随机概率

在奖励池随机一个作为用户奖励,这种方式实现起来很简单,但是产品不允许。为了吸引用户参与抽奖,一般会设置一些成本较高的奖励,这些成本较高的奖励肯定不希望被用户大概率抽到。

2.2 库存计算概率

奖励库存与中奖概率成正比,在很多场景下根据库存计算中奖概率也是一种比较好的选择。普通的奖励一般在后台会设置大量的库存,而成本较高的奖励可能只会设置个位数的库存。毕竟项目上线时不是由开发配置抽奖活动,不排除运营人员不清楚规则胡乱配置的可能,导致与预期不符。

2.3 指定中奖概率

用户能不能中奖严格按照后台各奖励的中奖概率计算,便于各业务线人员理解。

三、抽奖算法简单实现

随机概率比较简单,一行代码完事,这里就不说了。重点说下剩下两种算法的实现方式,实现细节是在”0 - 总库存“范围内生成一个随机数,然后把奖励库存分段,分段区间与奖励一一对应,随机数落在的那个分段区间对应的奖励为用户抽中的奖励。

下面是根据库存计算中奖概率的 demo,根据中奖概率计算同理。

public class LotteryDemo {
   
   

    public static Random random = new Random();

    public static List<LotteryRewardSku> rewardSkuList;

    static {
   
   
        rewardSkuList = Arrays.asList(new LotteryRewardSku(1L, 10), new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值