公司项目需要九宫格抽奖,大奖为1%,谢谢惠顾99%!大牛看一下下面这个中奖概率设置有啥漏洞没有,实际测了一下,抽了好多次才抽到话费50元
关注10收藏3
赞
阅读7.3k
7个回答
这种逻辑应该后台写,并且在提交中奖结果时要进行验证,否则前端太容易篡改数据了。
点击抽奖时,请求后台
后台返回抽奖结果
前端播放抽奖动画,并且保证最后停在返回的中奖结果项上
--- 更新 ---
大致给你个权重算法
// 权重越小越难中奖 // 这里iphone中奖概率为 1/2001 大致为 0.000499 const prizeList = [ { name: 'iphone', weight: 1 }, { name: 'book', weight: 1000 }, { name: 'sorry', weight: 1000 } ] function config (prizeList) { let index = 0 prizeList.forEach(prize => { prize.min = index prize.max = index + prize.weight index += prize.weight }) return function () { let num = random(0, index - 1) return prizeList.filter(prize => prize.max > num && prize.min