JAVA 根据设置的概率生成随机数的方法
本文介绍了JAVA根据设置的概率生成随机数的方法,分享给大家
importjava.util.ArrayList; importjava.util.HashMap; importjava.util.List; importjava.util.Map; importjava.util.Random; publicclassRandomTest{ //String可以为任意类型也可以自定义类型 staticMapkeyChanceMap=newHashMap (); static{ keyChanceMap.put("aaa",500); keyChanceMap.put("bbb",1500); keyChanceMap.put("ccc",2000); keyChanceMap.put("ddd",3000); keyChanceMap.put("eee",3000); } publicstaticvoidmain(String[]args){ Map count=newHashMap (); List list=newArrayList<>(); Stringitem=null; for(inti=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(Stringid:count.keySet()){ System.out.println(id+"\t出现了"+count.get(id)+"次"); } Randomrand=newRandom(); intnum=rand.nextInt(10000); System.out.print("最终选择的随机数为:"+list.get(num)); } publicstaticStringchanceSelect(Map keyChanceMap){ if(keyChanceMap==null||keyChanceMap.size()==0) returnnull; Integersum=0; for(Integervalue:keyChanceMap.values()){ sum+=value; } //从1开始 Integerrand=newRandom().nextInt(sum)+1; for(Map.Entry entry:keyChanceMap.entrySet()){ rand-=entry.getValue(); //选中 if(rand<=0){ Stringitem=entry.getKey(); returnitem; } } returnnull; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。