权重随机算法

Posted Mosthink

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权重随机算法相关的知识,希望对你有一定的参考价值。

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();

}

以上是关于权重随机算法的主要内容,如果未能解决你的问题,请参考以下文章

权重随机算法的java实现

Dijkstra 算法随机选择具有相同最小权重的相邻节点

加权重随机算法

随机优先与权重——非平均概率的选择工具

加权随机算法

数据结构与算法之深入解析“按权重随机选择”的求解思路与算法示例