JAVA 根据设置的概率生成随机数的方法
发布时间 - 2026-01-11 02:37:08 点击率:次本文介绍了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
深圳网站制作平台,深圳市做网站好的公司有哪些?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
如何在橙子建站中快速调整背景颜色?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何在宝塔面板中修改默认建站目录?
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
Python自动化办公教程_ExcelWordPDF批量处理案例
PythonWeb开发入门教程_Flask快速构建Web应用
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
免费网站制作appp,免费制作app哪个平台好?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Laravel如何实现本地化和多语言支持?(i18n教程)
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Laravel如何使用Livewire构建动态组件?(入门代码)
JS弹性运动实现方法分析
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何快速搭建支持数据库操作的智能建站平台?
油猴 教程,油猴搜脚本为什么会网页无法显示?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
昵图网官方站入口 昵图网素材图库官网入口
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何用PHP快速搭建高效网站?分步指南
Laravel怎么实现验证码(Captcha)功能
JavaScript Ajax实现异步通信
香港服务器如何优化才能显著提升网站加载速度?
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
Laravel如何实现一对一模型关联?(Eloquent示例)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何生成腾讯云建站专用兑换码?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel如何处理文件下载请求?(Response示例)
Laravel如何实现API速率限制?(Rate Limiting教程)
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
Swift开发中switch语句值绑定模式
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
浅谈redis在项目中的应用
Laravel如何为API生成Swagger或OpenAPI文档
如何在宝塔面板中创建新站点?

