为了账号安全,请及时绑定邮箱和手机立即绑定

如何在固定名额下,根据时间进度,动态调整抽奖的机率。

如何在固定名额下,根据时间进度,动态调整抽奖的机率。

呼如林 2018-11-15 13:15:51
1.现在有一个项目要求是这样的:奖池有A、B、C三种商品,数量分别为n1, n2, n3, 时间为三周用户点击后随机抽奖,如果抽中可以在三种奖品中随机获得一种。[补充:每人只有一次抽奖机会]要求第一周随机抽奖结果是获奖人数必须达到(n1,n2,n3)%80左右。后面的两周抽完剩下的。大家觉得怎么做比较好?
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

一个奖品分两个队列,如1_jx_1(第一期奖品奖项1)、2_jx_1(第二期奖品奖项1),然后队列里面放奖品的信息什么的。

$1_jx_1=

array(

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401401'),

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401402'),

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401403'),

  ......


  );

$1_jx_2=

array(

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401411'),

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401412'),

  array('jx'=>'1','name'=>'一等奖','sn'=>'20170401413'),

  ......


  );

用户点击页面,生成奖品,第一周去队列一取,后面两周去队列二取奖品,队列出队空,就直接返回谢谢参与。

用户点击页面,算法生成奖项再队列里面出队,这是一个办法。

以前我是这么搞的,不知道好不好。我线下根据算生法,生成了好几万的领奖数据,把这些记录放到redis里面,用户点击页面,直接队列里面出队一个奖给他,省了算法的部分。
也就是说只要两个队列,只要队列一空,就谢谢参与。这样子速度是快了些,缺点是前确定了奖品概率,后期不好改动。

$1jx= array(

           array('jx'=>'1','name'=>'一等奖','sn'=>'20170401401'),

            array('jx'=>'0','name'=>'谢谢参与','sn'=>''),

            array('jx'=>'0','name'=>'谢谢参与','sn'=>''),

            array('jx'=>'0','name'=>'谢谢参与','sn'=>''),

            array('jx'=>'1','name'=>'一等奖','sn'=>'20170401403'),

      ......


    );

$1jx=array(

          array('jx'=>'0','name'=>'谢谢参与','sn'=>''),

          array('jx'=>'0','name'=>'谢谢参与','sn'=>''),

         ......

          array('jx'=>'1','name'=>'一等奖','sn'=>'20170401413'),

          ......


      );


查看完整回答
反对 回复 2018-12-06
  • 1 回答
  • 0 关注
  • 620 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信