日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 权重_java实现权重随机算法

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 权重_java实现权重随机算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

權重隨機算法在抽獎,資源調度等系統中應用還是比較廣泛的,一個簡單的按照權重來隨機的實現,權重為幾個隨機對象(分類)的命中的比例,權重設置越高命中越容易,之和可以不等于100;

簡單實現代碼如下:

import java.util.ArrayList;

import java.util.List;

import java.util.Random;

public class WeightRandom {

static List categorys = new ArrayList();

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;

}

}

總結

以上是生活随笔為你收集整理的java 权重_java实现权重随机算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。