目录

1.奖品实体

2.测试类


1.奖品实体

package com.example.demo.h5draw;/*** @author hanzl* @date 2020/7/6 2:41 下午*/public class DrawPrize {private Integer id;private String name;private Integer quantity;//数量public DrawPrize(){}public DrawPrize(Integer id,String name,Integer quantity){this.id=id;this.name=name;this.quantity=quantity;}public Integer getId () {return id;}public void setId (Integer id) {this.id = id;}public String getName () {return name;}public void setName (String name) {this.name = name;}public Integer getQuantity () {return quantity;}public void setQuantity (Integer quantity) {this.quantity = quantity;}
}

2.测试类

package com.example.demo.h5draw;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @author hanzl* @date 2020/7/6 1:52 下午*/
public class TestH5Draw {public static void main(String args[]){List<DrawPrize> drawList=new ArrayList<>();drawList.add(new DrawPrize(1,"电灯",2));drawList.add(new DrawPrize(2,"手机",1));drawList.add(new DrawPrize(3,"优惠券",500));drawList.add(new DrawPrize(4,"电视",2));drawList.add(new DrawPrize(5,"会员卡",30));drawList.add(new DrawPrize(6,"谢谢惠顾",1000));int k=0;int m=0;int g=0;int h=0;int l=0;int f=0;for(int i=0;i<10000;i++){DrawPrize result=generateAward(drawList);if(result.getId()==1){k++;}if(result.getId()==2){m++;}if(result.getId()==3){g++;}if(result.getId()==4){h++;}if(result.getId()==5){l++;}if(result.getId()==6){f++;}}System.out.println("抽取电灯次数为"+k);System.out.println("抽取手机次数为"+m);System.out.println("抽取优惠券次数为"+g);System.out.println("抽取电视次数为"+h);System.out.println("抽取会员卡次数为"+l);System.out.println("抽取谢谢惠顾次数为"+f);}/**** 生成奖项* @return*/public static DrawPrize generateAward (List<DrawPrize> drawList) {int maxResult=drawList.stream().mapToInt(DrawPrize::getQuantity).sum();long result = randomnum(1, maxResult);int line = 0;int temp = 0;DrawPrize returnobj = null;for (int i = 0; i < drawList.size(); i++) {DrawPrize obj2 = drawList.get(i);int c = obj2.getQuantity();temp = temp + c;line = maxResult - temp;if (c != 0) {if (result > line && result <= (line + c)) {returnobj = obj2;break;}}}return returnobj;}// 获取2个值之间的随机数private static long randomnum (int smin, int smax) {int range = smax - smin;double rand = Math.random();return (smin + Math.round(rand * range));}
}

java实现概率抽奖相关推荐

  1. java的概率的程序_java实现一个抽奖概率类

    在一些项目需求中,可能会遇到抽奖问题,如提供一系列奖品及获奖概率,要求根据概率返回每次抽到的奖品.以下是本人在实际项目中写的一个抽奖工具类,与大家共同分享: import java.util.Arra ...

  2. java实现随机数抽奖_JAVA使用随机数实现概率抽奖

    本文实例为大家分享了JAVA使用随机数实现概率抽奖的具体代码,供大家参考,具体内容如下 需求 网站现有一抽奖功能,已经定义好奖品,每个奖品都有对应的中奖概率.通过奖品概率随机进行抽奖 实现思路 1.每 ...

  3. java抽奖概率抽奖

    首先定义奖品类 import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotatio ...

  4. JAVA代码实现抽奖功能,自定义奖品以及奖品概率

    JAVA代码实现抽奖功能,自定义奖品以及奖品概率 大家好,我是梦辛工作室的灵,最近做了一个抽奖功能,然后自己为了以后方便和拓展 就封装了一下,可以自定义奖品 自定义权重 和 价格等信息,还可以自由设置 ...

  5. 天天福利抽奖-JAVA概率抽奖

    搞了个抽奖活动,中大奖中的简直爽歪歪? 不过还是要偷偷告诉你:抽奖是有内幕的~~~(不能让领导看到,会被打?) 总在各种app上看到转盘抽奖,翻牌抽奖,每次抱着中最大奖的心,换来的都是未中奖的提示,可 ...

  6. 概率抽奖常用两种方式

    概率抽奖 方式一 之前看到的一个概率抽奖的方法,忘记出处了.整理到我的博客,方便自己查看 import java.util.ArrayList; import java.util.Collection ...

  7. 概率抽奖工具类(支持概率大于100抽奖)

    package choujiang;import java.util.ArrayList; import java.util.List; import java.util.Random;/*** 抽奖 ...

  8. JAVA实现用户抽奖包含完整代码

    JAVA实现用户抽奖 需求分析 1)实现三个基本功能:登录.注册.抽奖. 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面 ...

  9. java基础项目-抽奖机-模拟双色球-大乐透

    java基础项目-抽奖机-模拟双色球-大乐透: 创建了很多的方法逐个编译的,做的很新手 不足之处希望多多交流.谢谢. 需求分析: 欢迎界面 欢迎使用超级幸运抽奖机 选彩种(1.双色球:2.超级大乐透) ...

最新文章

  1. 企业如何选择音视频会议系统分析
  2. jsp 出现cannot be resolved to a type问题解决办法
  3. PICRUSt:预测宏基因组功能—16S扩增子分析锦上添花
  4. Postman批量跑接口
  5. why object family error message is filtered out
  6. QQProtect.exe(Q盾)
  7. easyui 调用dialog中的方法_SolidWorks中标准件库的创建及调用方法
  8. [转]:tbox中数据库的使用
  9. java经纬度凸包graham_计算几何-凸包-Graham算法
  10. 《Kotlin 极简教程 》第5章 集合类
  11. 最新三网免挂码支付系统源码+免授权版
  12. 软件测试基础之功能性测试
  13. antdesign——select搜索
  14. Rayson API 框架分析系列之5: NIO实现原理
  15. 小程序 用户反馈_用户反馈如何提高我的应用程序的安全性
  16. Base64和Base64URL加解密
  17. 互联网产品的需求分析
  18. Holder类的作用
  19. startx 命令详解
  20. matlab多项式的求值,多项式求值的MATLAB实现

热门文章

  1. 基于 Bootstrap 5 的教育和课程主题 HTML 网站模板
  2. 【毕业设计】LSTM预测算法(股票预测 天气预测 房价预测)
  3. 保姆级AS400 CL介绍与应用(硬核)
  4. android清理存储工具,(安卓)CCleaner Pro — 手机垃圾文件清理工具
  5. #125 Backpack II
  6. 分享十个预加载功能生成器
  7. 干涉法测微小量实验_干涉法测微小量
  8. 30招微信公众号运营案例
  9. 快来围观,又一个大厂首席架构师真正财务了
  10. Python语言程序设计------测试题【4】