python - 如何从每个子集的不同概率的超集中选择一个随机数
问题描述
我需要从一组 Y 的 100 个数字中随机选择一个数字作为 [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)
推荐阅读
- asp.net - 如何将表格内的单选按钮列表与表格的其余部分对齐
- unit-testing - .CORE xUnit 测试 HttpContext.Session
- awk - 在 ssh 连接中使用期望时出现 awk 奇怪的解析“~”解析错误
- javascript - 当且仅当它们存在于数组中时,如何设置字符串的单词样式,其他单词在 react-native 中保持正常
- sql-server - 删除作业需要超过 16 小时才能完成
- python - 为什么我不能在遍历字典列表时应用翻译器?
- java - 在 Cloud SDK 中使用 XSTokenRequest 获取令牌
- angular - 如何在 Angular 7 中从 json 创建函数名称
- reactjs - 如何在我的功能组件上使用上下文?
- c# - UseStatusCodePagesWithReExecute 不适用于禁止 (403)