我们想做一个抽奖活动,打算模仿某平台的抽奖活动。抽奖的逻辑如下图,现在有 2 个问题想问下大家怎么解决:
1、如何生成便利贴、充电宝、iphone 这样的序列?能否给点逻辑算法上的提示?
2、奖品序列在数据库的保存形式是什么?
感谢!
1
guanmm OP 自己回答吧。
1、比如,7 个便利贴,2 个充电宝,1 个 Iphone。 思路:第一次,用 7 除 3,结果>=2,获得便利贴,此时剩下 6、2、1 ; 第二次,用 6 除 3,结果>=2,获得便利贴,此时剩下 5、2、1 ; 第三次,用 5 除 3,结果<2,放弃便利贴 5,此时剩下 2、1,用 2 除 1,结果>=2,获得充电宝,此时剩下 5、1、1 ; 第四次,用 5 除 2,结果>=2,获得便利贴,此时剩下 4、1、1 ; ...以此类推,可以获得上面的抽奖顺序。 特殊情况,当剩下 3、1、0 时,简化成 3、1。 2、如果使用这种算法的话,就不用预先插入中奖顺序到数据库中了。 |