这两天和同事探讨了下关于抽奖的规则,总结了下面两种方案供大家参考。
1、中奖概率描述:
一等奖:千分之一;
二等奖:千分之五;
三等奖:千分之五;
参与奖:剩余用户;
2、抽奖方案:
方案一:埋点方案
适合场景:主要针对知道实际参与人数,例如:公司年会
方案描述:
因为知道实际参与人(假设1000人),我们可以按照抽奖的先后顺序,固定第200位参加抽奖的中一等奖,第100、361、490、555、700位参加抽奖的中二等奖,第111、222、333、444、888位抽奖中三等奖。
方案说明:
1)用户不清楚自己抽奖之前已有多少人抽奖;
2)具体中奖的数据(埋点),不可告知用户;
3)保证奖池中的奖能够分配完;
方案二:奖池方案
适合场景:针对人数不确定,但是要求中奖比例固定。例如:推广活动抽奖
方案描述:
1)按照中奖最小比例初始化奖池。本活动最小比例千分之一,我们可以设置奖池为1000。这1000个数中排序,1为一等奖;2~6为二等奖,7~11为三等奖;
2)用户抽奖,随机产生目前奖池剩余总数中的一个数。例如目前奖池为1000,那就随机1~1000中的一个数,作为用户中奖序号;然后保存用户中奖数据,从奖池中移除已抽中的奖;
3)下一个用户抽奖,随机产生目前奖池剩余总数中的一个数。目前奖池为999,那就随机1~999中的一个数,作为用户中奖序号;然后保存用户中奖数据,从奖池中移除已抽中的奖;
4)以此类推,直到奖池数为0。这时需要参考1)重新初始化奖池;
方案分析:
1)该方案适合不确定参与人数的活动;
2)能够有效的控制抽奖成本,减少随机性产生的不公平;
以上两个方案,各有优缺点。如有其它方案,欢迎大家提出来一起分享。