数组中的加权随机选择-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

数组中的加权随机选择

保持可爱mmm 2020-02-08 21:54:04 97

我想从数组中随机选择一个元素,但是每个元素都有一个已知的选择概率。

(在数组中)所有机会的总和为1。

您会建议哪种算法最快,最适合进行大量计算?

例:

id => chance array[ 0 => 0.8 1 => 0.2 ] 对于此伪代码,所讨论的算法应在多个调用上统计返回id上的四个元素,以id上0的一个元素1。 问题来源于stack overflow

算法
分享到
取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-02-08 21:54:17

    计算列表的离散累积密度函数(CDF)-或简单地说就是权重的累积和数组。然后生成一个介于0和所有权重之和之间的随机数(在您的情况下可能为1),进行二进制搜索以在您的离散CDF数组中找到该随机数,并获取与此条目对应的值-这是您的加权随机数。

    0 0
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题
推荐课程