本文介绍了JAVA 根据设置的概率生成随机数的方法,分享给大家
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class RandomTest {
// String 可以为任意类型 也可以自定义类型
static Map<String, Integer> keyChanceMap = new HashMap<String, Integer>();
static {
keyChanceMap.put("aaa", 500);
keyChanceMap.put("bbb", 1500);
keyChanceMap.put("ccc", 2000);
keyChanceMap.put("ddd", 3000);
keyChanceMap.put("eee", 3000);
}
public static void main(String[] args) {
Map<String, Integer> count = new HashMap<String, Integer>();
List<String> list = new ArrayList<>();
String item = null;
for (int i = 0; i < 10000; i++) {
item = chanceSelect(keyChanceMap);
list.add(item);
if (count.containsKey(item)) {
count.put(item, count.get(item) + 1);
} else {
count.put(item, 1);
}
}
for (String id : count.keySet()) {
System.out.println(id + "\t出现了 " + count.get(id) + " 次");
}
Random rand = new Random();
int num = rand.nextInt(10000);
System.out.print("最终选择的随机数为:"+list.get(num));
}
public static String chanceSelect(Map<String, Integer> keyChanceMap) {
if (keyChanceMap == null || keyChanceMap.size() == 0)
return null;
Integer sum = 0;
for (Integer value : keyChanceMap.values()) {
sum += value;
}
// 从1开始
Integer rand = new Random().nextInt(sum) + 1;
for (Map.Entry<String, Integer> entry : keyChanceMap.entrySet()) {
rand -= entry.getValue();
// 选中
if (rand <= 0) {
String item = entry.getKey();
return item;
}
}
return null;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java
# 概率随机数
# java按概率生成随机数
# java随机数概率
# 算法
# Java中生成随机数的实现方法总结
# Java生成随机数的2种示例方法代码
# 史上最全的java随机数生成算法分享
# java生成指定范围随机数的多种代码
# Java随机值设置(java.util.Random类或Math.random方法)
# 随机数
# 给大家
# 自定义
# 大家多多
# 数为
# 出现了
# gt
# static
# Integer
# String
# lt
# keyChanceMap
# ccc
# bbb
# put
# aaa
# RandomTest
# brush
# import
相关文章:
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
如何快速搭建高效服务器建站系统?
如何确认建站备案号应放置的具体位置?
如何在宝塔面板中创建新站点?
如何快速登录WAP自助建站平台?
如何通过虚拟主机快速完成网站搭建?
建站VPS能否同时实现高效与安全翻墙?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何快速生成可下载的建站源码工具?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
如何自定义建站之星模板颜色并下载新样式?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
如何获取开源自助建站系统免费下载链接?
北京企业网站设计制作公司,北京铁路集团官方网站?
Swift中switch语句区间和元组模式匹配
建站主机核心功能解析:服务器选择与网站搭建流程指南
南京网站制作费用,南京远驱官方网站?
如何高效完成独享虚拟主机建站?
如何快速启动建站代理加盟业务?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
制作门户网站的参考文献在哪,小说网站怎么建立?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何在Windows服务器上快速搭建网站?
建站主机是否等同于虚拟主机?
如何通过VPS建站无需域名直接访问?
如何在宝塔面板创建新站点?
建站之星安装后如何自定义网站颜色与字体?
建站之星云端配置指南:模板选择与SEO优化一键生成
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何配置支付宝与微信支付功能?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
视频网站制作教程,怎么样制作优酷网的小视频?
南宁网站建设制作定制,南宁网站建设可以定制吗?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
建站之星安装后界面空白如何解决?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何用AWS免费套餐快速搭建高效网站?
如何在IIS中配置站点IP、端口及主机头?
购物网站制作公司有哪些,哪个购物网站比较好?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
如何确保FTP站点访问权限与数据传输安全?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
如何在IIS7上新建站点并设置安全权限?
,巨量百应是干嘛的?
网站制作软件有哪些,制图软件有哪些?
建站之星如何实现PC+手机+微信网站五合一建站?
制作网站的软件免费下载,免费制作app哪个平台好?
如何通过多用户协作模板快速搭建高效企业网站?
常州企业网站制作公司,全国继续教育网怎么登录?
*请认真填写需求信息,我们会在24小时内与您取得联系。