权重随机算法Java实现
发布时间:2020-12-15 00:16:51 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.util.ArrayList; import java.util.List; import java.util.Random; public class WeightRandom { static ListWeightCategory categorys
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 import java.util.ArrayList; import java.util.List; import java.util.Random; public class WeightRandom { static List<WeightCategory> categorys = new ArrayList<WeightCategory>(); private static Random random = new Random(); public static void initData() { WeightCategory wc1 = new WeightCategory("A",60); WeightCategory wc2 = new WeightCategory("B",20); WeightCategory wc3 = new WeightCategory("C",20); categorys.add(wc1); categorys.add(wc2); categorys.add(wc3); } public static void main(String[] args) { initData(); Integer weightSum = 0; for (WeightCategory wc : categorys) { weightSum += wc.getWeight(); } if (weightSum <= 0) { System.err.println("Error: weightSum=" + weightSum.toString()); return; } Integer n = random.nextInt(weightSum); // n in [0,weightSum) Integer m = 0; for (WeightCategory wc : categorys) { if (m <= n && n < m + wc.getWeight()) { System.out.println("This Random Category is "+wc.getCategory()); break; } m += wc.getWeight(); } } } class WeightCategory { private String category; private Integer weight; public WeightCategory() { super(); } public WeightCategory(String category,Integer weight) { super(); this.setCategory(category); this.setWeight(weight); } public Integer getWeight() { return weight; } public void setWeight(Integer weight) { this.weight = weight; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |