奖品类:

 public class Prize {    private int id;//奖品idprivate String prize_name;//奖品名称private int prize_amount;//奖品(剩余)数量private int prize_weight;//奖品权重
}

prize_name表示奖品名称;

prize_amount表示奖品数量,即本次抽奖活动计划发放此奖品的数量;

prize_weight表示奖品权重,表示奖品被抽到的几率的比重,权重越大,被抽到的几率越大,

比如本次砸金蛋活动有4种奖品,权重分别是1、2、3、4,总权重是10,那么每种奖品被抽到的几率就是1/10,2/10,3/10,4/10。

抽奖算法:

/*** 根据Math.random()产生一个double型的随机数,判断每个奖品出现的概率* @param prizes* @return random:奖品列表prizes中的序列(prizes中的第random个就是抽中的奖品)*/public int getPrizeIndex(List<Prize> prizes) {DecimalFormat df = new DecimalFormat("######0.00");  int random = -1;try{//计算总权重double sumWeight = 0;for(Prize p : prizes){sumWeight += p.getPrize_weight();}//产生随机数double randomNumber;randomNumber = Math.random();//根据随机数在所有奖品分布的区域并确定所抽奖品double d1 = 0;double d2 = 0;          for(int i=0;i<prizes.size();i++){d2 += Double.parseDouble(String.valueOf(prizes.get(i).getPrize_weight()))/sumWeight;if(i==0){d1 = 0;}else{d1 +=Double.parseDouble(String.valueOf(prizes.get(i-1).getPrize_weight()))/sumWeight;}if(randomNumber >= d1 && randomNumber <= d2){random = i;break;}}}catch(Exception e){System.out.println("生成抽奖随机数出错,出错原因:" +e.getMessage());}return random;}

设计一个大转盘,砸金蛋之类的中奖逻辑相关推荐

  1. 设计幸运大转盘h5小游戏总结

    幸运大转盘是APP和微信中使用很广泛的一种小游戏,最近由于客户需要推一些新的小游戏,于是我开发了一款幸运大转盘,下面将开发中遇到的问题总结一下,毕竟好记性不如烂笔头.开发中参照了网上找到的例程,有现成 ...

  2. h5大转盘 php,HTML5 canvas实现中奖转盘的实例代码

    本篇文章给大家带来的内容是关于HTML5 canvas实现中奖转盘的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 最近在学canvas做动画,于是就写个转盘练下手. 上个简 ...

  3. 如何设计一个大数据实时分析平台

    大数据实时分析平台(以下简称PB-S),旨在提供数据端到端实时处理能力(毫秒级/秒级/分钟级延迟),可以对接多数据源进行实时数据抽取,可以为多数据应用场景提供实时数据消费.作为现代数仓的一部分,PB- ...

  4. 用Java和Jquery实现了一个砸金蛋例子

    之前在网上找到了一个Jquery+PHP实现的砸金蛋的例子,正好公司也要我写一个类似的砸金蛋的功能,于是在网上找了找参考,用Jsp程序也弄了一个出来,首先是Html的效果,我打算每次在页面上只显示一个 ...

  5. 移动换H5 の 纯CSS3实现大转盘抽奖布局 by FungLeo

    移动换H5 の 纯CSS3实现大转盘抽奖布局 by FungLeo 前言 本教程不涉及JS控制旋转部分,也不涉及后端输出抽奖结果部分.这篇教程讲的是如何去实现大转盘抽奖的布局. 在制作大转盘抽奖的时候 ...

  6. jQuery+PHP实现的砸金蛋中奖程序

    准备 我们需要准备道具(素材),即相关图片,包括金蛋图片.蛋砸碎后的图片.砸碎后的碎花图片.以及锤子图片. HTML 我们页面上要展现的是一个砸金蛋的台子,台上放了编号为1,2,3的三个金蛋,以及一把 ...

  7. 微信公众平台开发(53)砸金蛋

    微信公众平台开发 微信公众平台开发模式 企业微信公众平台 砸金蛋 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/crack-golden-eggs.html ...

  8. html5绘制图形幸运大转盘,幸运大转盘 - 慧编程 - 专注于青少年 STEAM 教育的图形化编程平台...

    案例详情 1.实现效果 按下板载按钮后,开始一次抽奖,大转盘的指针不断旋转,然后随机停留在一个位置上,指针指向的盘面就能获得相对应的奖品. 2.实现思路 为了实现每次指针的指向无法预测,需要使用随机数 ...

  9. 用c#开发微信 (15) 微活动 1 大转盘

    微信营销是一种新型的营销模式,由于微信更重视用户之间的互动,故而这种营销推广不不能盲目地套用微博营销的单纯大量广告推送方式.这种方式在微信营销中的效果非常差,会令用户反感,继而取消去企业或商家的微信公 ...

最新文章

  1. Android app 启动页尺寸大小 忘记了怎么办
  2. Developer Express XtraGrid使用技巧
  3. ubuntu下和开发板下播放音乐
  4. tomcat启动时,报java.io.EOFException
  5. 稍稍乱入的CNN,本文依然是学习周莫烦视频的笔记。
  6. Docker镜像的分层和镜像的创建(Dockerfile)
  7. Goland安装-工欲善其事必先利其器
  8. mysql5.7.17 win7_win7下mysql5.7.17安装配置方法图文教程
  9. 产品和运营,如何做好转化分析?
  10. 化学人学python有前途吗-用Python解析化学公式
  11. 面试题之——多线程详解
  12. MSI设计一个1位二进制全减器
  13. Anjuta安装使用
  14. gif怎么转换html,gif转视频的教程:怎么把gif转换成mp4、avi、wmv
  15. windows server2008r2 管理员身份
  16. fop生成pdf的中文乱码问题
  17. Android 图片压缩的几种方法
  18. python降低图像分辨率_降低DDS图像的分辨率
  19. Win10任务栏假死问题解决方案
  20. Clion安装及相关环境(MinGW和OpenOCD)的配置及利用Clion点亮led灯

热门文章

  1. python小说下载器_python 制作网站小说下载器
  2. 计算机培训普通话是什么,计算机普通话培训.ppt
  3. matplotlib部件(widgets)之矩形选区(RectangleSelector)
  4. 问道手游服务器维护集市时间,建议问道手游减少集市审核时间解读
  5. AJAX实现的网站登陆时的校验码
  6. DW学生个人网站制作成品下载 HTML5+CSS大作业——汽车世界(6页) 关于制作汽车网页主题论述
  7. 企业邮箱的概念及优势
  8. U-boot-2009.03移植之七:第一阶段之mini2440.h的理解和修改
  9. 视频教程-ASP.NET MVC5 实战(arcgis项目)-JavaScript
  10. sql 取一条离当前时间最近的记录