全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JAVA 根据设置的概率生成随机数的方法

本文介绍了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小时内与您取得联系。