java实现概率抽奖
目录
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实现概率抽奖相关推荐
- java的概率的程序_java实现一个抽奖概率类
在一些项目需求中,可能会遇到抽奖问题,如提供一系列奖品及获奖概率,要求根据概率返回每次抽到的奖品.以下是本人在实际项目中写的一个抽奖工具类,与大家共同分享: import java.util.Arra ...
- java实现随机数抽奖_JAVA使用随机数实现概率抽奖
本文实例为大家分享了JAVA使用随机数实现概率抽奖的具体代码,供大家参考,具体内容如下 需求 网站现有一抽奖功能,已经定义好奖品,每个奖品都有对应的中奖概率.通过奖品概率随机进行抽奖 实现思路 1.每 ...
- java抽奖概率抽奖
首先定义奖品类 import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotatio ...
- JAVA代码实现抽奖功能,自定义奖品以及奖品概率
JAVA代码实现抽奖功能,自定义奖品以及奖品概率 大家好,我是梦辛工作室的灵,最近做了一个抽奖功能,然后自己为了以后方便和拓展 就封装了一下,可以自定义奖品 自定义权重 和 价格等信息,还可以自由设置 ...
- 天天福利抽奖-JAVA概率抽奖
搞了个抽奖活动,中大奖中的简直爽歪歪? 不过还是要偷偷告诉你:抽奖是有内幕的~~~(不能让领导看到,会被打?) 总在各种app上看到转盘抽奖,翻牌抽奖,每次抱着中最大奖的心,换来的都是未中奖的提示,可 ...
- 概率抽奖常用两种方式
概率抽奖 方式一 之前看到的一个概率抽奖的方法,忘记出处了.整理到我的博客,方便自己查看 import java.util.ArrayList; import java.util.Collection ...
- 概率抽奖工具类(支持概率大于100抽奖)
package choujiang;import java.util.ArrayList; import java.util.List; import java.util.Random;/*** 抽奖 ...
- JAVA实现用户抽奖包含完整代码
JAVA实现用户抽奖 需求分析 1)实现三个基本功能:登录.注册.抽奖. 2)登录:用户输入账号密码进行登录,输入账号后会匹配已注册的用户,若输入用户不存在则退出,密码有三次输入机会,登录成功后主界面 ...
- java基础项目-抽奖机-模拟双色球-大乐透
java基础项目-抽奖机-模拟双色球-大乐透: 创建了很多的方法逐个编译的,做的很新手 不足之处希望多多交流.谢谢. 需求分析: 欢迎界面 欢迎使用超级幸运抽奖机 选彩种(1.双色球:2.超级大乐透) ...
最新文章
- 企业如何选择音视频会议系统分析
- jsp 出现cannot be resolved to a type问题解决办法
- PICRUSt:预测宏基因组功能—16S扩增子分析锦上添花
- Postman批量跑接口
- why object family error message is filtered out
- QQProtect.exe(Q盾)
- easyui 调用dialog中的方法_SolidWorks中标准件库的创建及调用方法
- [转]:tbox中数据库的使用
- java经纬度凸包graham_计算几何-凸包-Graham算法
- 《Kotlin 极简教程 》第5章 集合类
- 最新三网免挂码支付系统源码+免授权版
- 软件测试基础之功能性测试
- antdesign——select搜索
- Rayson API 框架分析系列之5: NIO实现原理
- 小程序 用户反馈_用户反馈如何提高我的应用程序的安全性
- Base64和Base64URL加解密
- 互联网产品的需求分析
- Holder类的作用
- startx 命令详解
- matlab多项式的求值,多项式求值的MATLAB实现