权重随机算法

int weightSum = 0;

for (Item item : mItems) {

      weightSum += item.getWeight();

}

if (weightSum <= 0) {

       return null;

}

Random random = new Random();

int randomNum = random.nextInt(weightSum);

Integer m = 0;

for (Item item : mItems) {

      if (m <= randomNum && randomNum < m + item.getWeight()) {

           return item;

       }

         m += item.getWeight();

}

posted @ 2016-03-17 20:11  Mosthink  阅读(412)  评论(0编辑  收藏  举报