如何从一个超集中选择一个随机数,每个子集具有不同的概率

我需要从100个数字的集合Y中随机选择一个数字,从[1.00到2.00),并具有以下概率的四个子集。

  1. Y1-> [1.00-1.39)---概率(0.4)
  2. Y2-> [1.40-1.69)---概率(0.3)
  3. Y1-> [1.70-1.89)---概率(0.2)
  4. Y1-> [1.90-1.99)---概率(0.1)

我该如何解决这个问题?

wuhengqu520 回答:如何从一个超集中选择一个随机数,每个子集具有不同的概率

您可以使用random.choices。好处是您可以指定权重

import random
def pick_random():
    randoms = [random.uniform(1.0,1.39),random.uniform(1.4,1.69),random.uniform(1.7,1.89),random.uniform(1.9,1.99)]
    weights = [0.4,0.3,0.2,0.1]
    return round(random.choices(randoms,weights=weights)[0],2)
本文链接:https://www.f2er.com/3137947.html

大家都在问