这期内容当中小编将会给大家带来有关利用JAVA如何根据概率生成随机数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体方法如下:import java.util.ArrayList;import
这期内容当中小编将会给大家带来有关利用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如何根据概率生成随机数了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。
--结束END--
本文标题: 利用JAVA如何根据概率生成随机数
本文链接: https://lsjlt.com/news/224461.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0