如何select从每个子集的概率不同的超集中随机数
How to select a random number from a super set with different probability of each sub set
我需要 select 从 100 个数字的集合 Y 中随机选择一个数字作为 [1.00 到 2.00),具有以下概率的四个子集。
- Y1--> [1.00-1.39)---概率(0.4)
- Y2--> [1.40-1.69)---概率(0.3)
- Y1--> [1.70-1.89)---概率(0.2)
- Y1--> [1.90-1.99)---概率(0.1)
我该如何解决这个问题?
您可以使用 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)
我需要 select 从 100 个数字的集合 Y 中随机选择一个数字作为 [1.00 到 2.00),具有以下概率的四个子集。
- Y1--> [1.00-1.39)---概率(0.4)
- Y2--> [1.40-1.69)---概率(0.3)
- Y1--> [1.70-1.89)---概率(0.2)
- Y1--> [1.90-1.99)---概率(0.1)
我该如何解决这个问题?
您可以使用 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)