抽奖资料整理

311 篇文章 3 订阅
205 篇文章 0 订阅

一、关于介面

1、原生JS之实现九宫格抽奖效果,从此百分之百中奖不是梦!!!
了解如何加速、减速,停到中奖位置

2、积分转盘抽奖算法设计解析
2.1、可参其中的”等概率抽奖具体案例“设计页面
2.2、“随机抽奖概率算法设计”解释了“”经典算法”的原理;
2.3、利用公式:Sn=(A1+A2+…+Am)/m*n-n*a 控制积分增或减(注:公式是评论修正的);
2.4、算法放在服务端而不是在前端,更利于防止超中(个人想法:前端点抽奖->服务端计算中奖并锁定->返回奖项给前端->前端显示所中项目->通知服务端进行解锁);

二、算法

1、跪求一个java抽奖中奖算法的实现,在线等,急。。。。
思路:
我给你说个思想,你把每个奖项都设置一个值,举个例子:设置五等奖:500名,那你就设置数据区域1——500都是五等奖,四等奖:300名,那你就设置数据区域501-800都是四等奖,以此类推。这样每个ID过来抽奖的时候他每点击一次抽奖就产生一个随机整数,系统再和设置的中奖数据区域相匹配。基本上就可以解决你说的问题了。

2、不同中奖概率的多奖包抽奖几种算法

3、一个经典概率算法(用于抽奖等场景)  (就是上面2提及的”经典算法“)

4、抽奖算法-指定概率的随机
大概原理:
前提是确定了抽奖的人数(次数),为每个人准备一个盒子(数组元素),并随机将奖品放入到每个盒子中,按顺送出盒子,这样可以控制大奖出现的位置;

5、一个简单抽奖算法的实现以及如何预防超中
5.1 中奖概率 = 奖品数量 / (奖品数量  + 无奖数量),中奖百分率;
5.2 出奖机率 =  (奖品数量  + 无奖数量) / 奖品数量 , 即抽多少次会中奖1次;
5.3 无奖数量 =  奖品数量 / 中奖概率 - 奖品数量, 由5.1反推计得;(先定好中奖概率,计算出该投入多少个无奖数量) 

累计每项出奖数防止超中
 

三、Math.random()使用

1、Math.random()使用-抽奖概率事件
试验2000000次,均匀得无可挑剔:
重复几次试验,可以总结出均匀获得两个数字之间的随机数的公式:
1.1、Math.floor()方法

function randomNum(max,min){
    return Math.floor(Math.random()*(max-min+1)+min)
}

1.2、Math.round()方法

function randomNum(max,min){
    return Math.round(Math.random()*(max-min+1)+min-0.5)
}

1.3、Math.ceil()方法

function randomNum(max,min){
    return Math.ceil(Math.random()*(max-min+1)+min-1)
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值