微信平台抽奖算法总结-再也不用怕奖品被提前抢光
- 轩枫阁 - 前端开发 | web前端技术博客
/ 微信平台抽奖算法总结-再也不用怕奖品被提前抢光
阅读:6476
作者:ivan
但凡商户搞点营销活动,为了能触达更多的顾客,来点儿抽奖的把戏,应该是极好的,什么“刮刮乐”、“砸金蛋”、“大转盘”等等,换汤不换药,屡试不爽。从微客多营销平台各种活动的使用情况也能看出,抽奖活动一直是商户用得最多的线上活动,正所谓无利不起早,给点“花蜜”犒劳下“蜜蜂”也是应该的。
那么问题来了,发奖机制怎么玩?作为一个服务商户的营销平台,怎样将商户配置的奖品发出去才能起到比较好的效果呢?
先来看目标,什么是比较好的效果,也就是用户(商户)的需求是什么:
抽奖活动期间奖品数量是固定的
稀有的奖品尽量靠后被抽中
物尽其用,奖品不希望有剩余
每个奖品可以设置被抽中的概率
为了讨论方便,我们先把场景假设一下:
抽奖活动时间:
00:00:00-23:59:59
奖品设置:
第一种能想到的做法就是给每种奖品设置中奖概率,每次按设置好的中奖概率派奖,但是问题又来了:
奖品数量固定,但是参与抽奖的人数不可预知,根本无法控制奖品的消耗速度,如果概率设置高了,抽奖者一拥而上奖品很快就没了,设置低了,奖品可能到最后都发不完。另外,概率这个偏技术的术语用户理解起来肯定五花八门,使用时沟通成本非常高。
而实际上“每个奖品可以设置被抽中的概率”是个十分模糊的说法,说它模糊,主要是因为你并不知道这个设置的概率用在什么地方,这些概率设置需要满足什么条件,总样本数量(总抽奖次数)是多少。
所以最好的做法应该是用户不必关心所谓的“奖品被抽中的概率”,只关注前三个预期效果即可。
经过分析,我们发现,要达到用户上面的那三个效果,只要奖品在活动期间陆续被抽走即可,那能不能给每件奖品设置一个允许被抽走的时间呢?对!如果控制好每件奖品的发放时间点,再安排好各类奖品的发放顺序,大奖不会一开始就抽走,直到活动最后阶段都能保证有奖。
顺着这个想法,我们来看具体的设计:
将奖品均匀地埋在整个活动时间(00秒)里,如上面假设场景,一共有9个奖品,则把活动时间均匀的分成9份
以奖品剩余数量作为权重,陆续随机选择每个时间段里的奖品类型(颜色对应的奖品见上表)
在每个时间段里随机选择奖品的“释放”时间点,一是为了均匀,二是避免直接暴露精确的时间点
releaseTime(n)=startTime+(n-1)× ?t+random(?t)
说完思路,我们再看实现:在奖品释放时间点之后的抽奖用户就有机会(这个概率可配置,如100%或者80%)拿到该时间段的奖品,如果奖品未被抽走,将继续等待抽奖者的到来。
直观的做法是建立三张表
t_award_batch(奖品描述表,用于记录各种奖品的配置信息),
名称(name)
奖品总量(amount)
t_award_pool(奖池表,用于生成每一次奖品释放的时间点),
奖品ID(award_id)
释放时间(release_time)
剩余数(balance)
t_record(抽奖记录表,用于记录每次抽奖者的抽奖记录)
奖品ID(award_id)
中奖时间(hit_time)
用户ID(owner_id)
活动开始前,根据t_award_batch中的奖品配置信息,初始化t_award_pool中的数据,把每种奖品的释放时间初始化好,用户来抽奖时,根据当前时间在t_award_pool表中的查询到一条已经释放而且未被抽掉的奖品
select id from t_award_pool where release_time &= now() and balance & 0 limit 1 ;
查询到后对其进行更新,如果被他人抢走,则未中奖
update t_award_pool set balance = balance - 1 where id = #{id} balance & 0 ;
同时留下抽奖情况到t_record中。
在思路一中,为了方便抽奖时判断当前是否有可中奖品,进行了初始化每件奖品的释放时间,当奖品数量比较小的时候,情况还好,对于奖品数非常多的时候,抽奖的查询耗时会增加,初始化奖池也是耗时的动作,是否可以不依赖这个表之间通过实时计算判断当前是否有奖品释放。
在t_award_batch表中添加两个字段,奖品总剩余量balance和上一次中奖时间last_update_time。
名称(name)
奖品总量(amount)
奖品余量(balance)
更新时间(last_update_time)
这样具体实现上仅需要依赖奖品配置信息即可,示例代码如下(点击图片全屏查看):
其中awardBatch表示一类奖品,如上表中提到的一等奖。上面代码中,随机选出下一个待释放的奖品逻辑如下:
通过这套发奖机制,很好地满足了营销商户的目标,同时减少了对复杂概率计算的纠结,再也不用担心奖品被提前抢光了。
转载自: | KM平台
纸飞机许愿
前端路上,一路有你。编辑你的正能量,快乐工作,努力生活~
请选择弹奏的曲谱
点击开始录制,可以录制弹奏的曲子
分享钢琴节奏:中环杯 初赛 二等奖 是什么意思 相关的站内帖子
中环杯 初赛 二等奖 是什么意思
中环杯 初赛 二等奖 是什么意思
在中环杯决赛入围的名单里面看到有儿子的名字, 后面还写着二等奖, 请教有经验的爸爸妈妈, 这个二等奖是什么意思, 会有奖状吗? 决赛后还要分1.2.3等奖的吗, 跟这个有什么区别呢? 谢谢.
重要的是入围,这个所谓的区奖,意义不大
入围后的市奖才是有用的东西.
提示: 该帖被自动屏蔽
区二等, 有***。
决赛后的奖 是市奖。市三等奖以上基本上大部分名校都没问题。.
金币46816 枚&违规0 次&活跃度7 0%&
没听说区奖有大用处。.
金币24450 枚&违规0 次&活跃度7 0%&
谢谢各位,就当是有用的,先高兴一下.
哈哈,好吧,算你有用吧,看你考什么级别的学校了,多去了解下各类学校的要求吧,不过我实在看不出会有什么‘非常重要’。
LZ加油,拿个中环市奖。.
赞成3楼。区奖已经很有分量了,不过拿个市奖更好.
赞成3#所说的。能得市奖的毕竟是少数。招生人数总是多于获奖人数。.
有总比没有好,呵呵,所以竞赛市场会越来越大。.
区奖三等有用吗?自我感觉没啥用的,因为三奖人好多!.
区三等奖入围的人都有,就是个入围奖,意义不大.
那初赛区1等,决赛没有市奖的话,好的初中会看吗?.
回复 13#麻袋他妈 的帖子
会看是会看,8过学校可能会觉得这孩子怎么发挥这么不稳定
而且,中环初赛的水分很大,呵呵。.
区奖是每个考点自己定分数线的,所以差异很大,所以不如市奖.
有好过没~~阿Q一下,现在什么没有水分啊!.
回复 14#star7539 的帖子
呵呵.偶们初赛一等,决赛还没有考.照这么说,决赛要努力了.否则被老师觉得发挥不好,不稳定就糟糕了.
好在,偶们目前3年级,应该还有机会..
回复 14#star7539 的帖子
看样子我家去年就是很不稳定的,我们去年初赛一等奖,决赛没奖,反倒有些人初赛三等奖,决赛也三等奖。听说是换了一批出卷的老师。.
引用:原帖由 s1100 于
16:31 发表
区三等奖入围的人都有,就是个入围奖,意义不大 意义不大
提示: 该帖被自动屏蔽
回复 20#cslx 的帖子
金币57927 枚&违规0 次&活跃度8 0%&
人家小五班都白读的?
华育小五班9个班,每个班40人……
华育还有冬令营,今年160人参加
世外在外面有多少小五班?爵士英语几个班?新知几个班?浦东几个班?世外小学直升几个班?
自己去算算吧。
[ 本帖最后由 corriecao 于
17:13 编辑 ].
金币24450 枚&违规0 次&活跃度7 0%&
如果复赛可以拿到市三等奖,那肯定比区二等奖有效,如果没有拿到么,区二等奖肯定比区三等奖有用,也比没有奖的好。.
回复 20#cslx 的帖子
提示: 该帖被自动屏蔽
引用:原帖由 cslx 于
18:06 发表
其实给大家算个很简单的帐,就拿徐汇来说,徐汇的华育招生将近400,西南位育也差不多400,世外4个班也要160多,加起来将近1000个名额,当然,条子生是要占一部分比例。但是大家想一下,去年中环杯获奖一共全市才200多 ... 2010年中环杯五年级市一二三等奖共469人,加上这批五年级有部分学生在09年四年级的时候获市奖但五年级只有区级奖没市级奖的,光中环杯一项比赛全市就有500+的学生有得市级一二三等奖的经历。.
提示: 该帖被自动屏蔽
引用:原帖由 cslx 于
20:41 发表
1.区二等奖肯定是有用的(指对于徐汇的三大民办,眼面前活生生的例子就是普通三笔四口+区中环二等奖就有好多个在西南位育)恐怕 这些孩子被录取的更大原因是三笔四口,而非奥区二奖吧.
引用:原帖由 cslx 于
20:41 发表
恩,那么我们就拿徐汇区的例子来看,请问中环杯500多人中有几个人是徐汇区的考生(我知道有外区的考生来徐汇投简历,但反过来徐汇的考生也有出去的,在这个地方算不清楚就干脆不算)?
抱歉我只用徐汇区的例子,一 ... 三笔,四口也不算普通了,特别是四口, cslx可以在孩子五年级时看看班上有几个过四口的,呵呵.
回复 27#cslx 的帖子
同意!说得非常好。有区奖也好,有市奖更好。但市奖的获得者毕竟是少数,全市那么多好学校,不可能只靠市奖就把学生招满的,区奖也是有用滴~当然,有关系者除外。.
回复 25#cslx 的帖子
有道理!顶!不然我们那么多学奥数的孩子,都白忙活了!.
提示: 该帖被自动屏蔽
回复 32#cslx 的帖子
这个名单只是学校参加报名的,还有昂立、学而思、新东方等等的培训机构获奖名单没在里面
三笔四口的人数和中环2等的人数我没比过,我只是想告诉你上面的事实
而且奥数不光有中环,还有小机灵,走美,春蕾,亚太。。。
其实我觉得看数据只能是参考,个体的情况才是关键,还有孩子啥***也没有也可以进好学校的呢,呵呵.
提示: 该帖被自动屏蔽
回复 34#cslx 的帖子
哦,那我的回复是针对“普通三笔四口+区中环二等奖就有好多个在西南位育”
我只是觉得并不一定是区中环二等奖起的作用,兴许就是你说的普通的三笔四口呢.
回复 34#cslx 的帖子
我也同意二等奖没市奖有用,但比没有奖和区三等奖有用的.
喜欢技术帖.
0102考点的人数无法代表徐汇区这是肯定的,不清楚比例,但在学而思菁英昂立等等地方报名的孩子不在少数
而且很多学校有组织的孩子,家长也选择了在培训点报名,而不参加学校报名,这就是中环
所以别的话不想说了。
至于有用没用,还要看个人运道咯,我相信有总比没有好,哈哈~
另外,有中环市奖却进不了世外,也可能世外觉得这孩子奥数太好了,是眼睛向着华育的呢.
小升初,就是一团雾
牛娃不用说,要什么奖有什么奖,你说究竟哪个有用?
不太牛的娃,一堆小奖,又究竟哪个有用?
揽到篮子里的都是菜,有一颗算一颗,充充饥都有用。努力换来的嘛,至于在哪个校门口发挥了作用,谁知道哦.
去年刚完成小升初,回头想想,初赛区级***还是有用的。想去的学校都能得到面试资格,后面还要看孩子临场发挥吧。不过我们当初主要考虑浦东、黄浦的中学。.
这个区级***什么时候发呢?在学校里报名的,头一回比赛,中了个三年级二等奖,但是问学校老师,有没有***,大概什么时候发,老师也不知道哎。.
热烈讨论的都是好帖子。
我再提供个不很确定的信息,这次浦东5年级初赛获奖共120人。.
回复 42#光头 的帖子
请教,120人算是多还是少呢?.
回复 43#shxuco 的帖子
我认为不多,所以各位入围的家长要对自己的孩子有信心:自己的孩子虽然不一定是最棒的,但是已经是非常棒了!(当然,没入围的孩子也是棒的,我觉得就得让孩子相信自己是最棒的).
回复 44#光头 的帖子
多谢,多谢!.
提示: 该帖被自动屏蔽
中环杯 初赛 二等奖 是什么意思 相关的站内帖子