{A}
AlgoViz
首页
路线图
题单
教程
题目
可视化
错题本
进度
登录
加载中…
加权随机 Weighted Random
统计:按累计权重随机落点,权重越大被选中概率越高。
元素:
权重:
换个随机种子
速度:
0.5x
1x
2x
4x
apple
权重 1
cum 1
banana
权重 4
cum 5
cherry
权重 3
cum 8
按权重随机抽取:权重越大被抽中概率越高
步骤 1 / 5
按权重随机抽取:权重越大被抽中概率越高
算法代码
复制代码
当前高亮行:
1
(按权重随机抽取:权重越大被抽中概率越高)
1
function
weightedRandom(items, weights) {
2
let
cum = [];
3
for
(i) cum[i] = weights[i] + cum[i-
1
];
4
const
r = cum.last * Math.random();
5
for
(i)
if
(cum[i] >= r)
return
items[i];
6
}