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){
Mapcount=newHashMap();
Listlist=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(MapkeyChanceMap){
if(keyChanceMap==null||keyChanceMap.size()==0)
returnnull;
Integersum=0;
for(Integervalue:keyChanceMap.values()){
sum+=value;
}
//从1开始
Integerrand=newRandom().nextInt(sum)+1;
for(Map.Entryentry:keyChanceMap.entrySet()){
rand-=entry.getValue();
//选中
if(rand<=0){
Stringitem=entry.getKey();
returnitem;
}
}
returnnull;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。