python - 随机分布计算
问题描述
如果我指定一个数字,有没有办法将该数字的随机部分作为总数分配给几个组?
例如总计 1。
第 1 组 - 0.1 第 2 组 - 0.3 第 3 组 - 0.4 第 4 组 - 0.2
解决方案
在Python
:
from random import random
num_groups = 5 # Number of groups
total = 5 # The given number
base = [0.] + sorted(random() for _ in range(num_groups - 1)) + [1.]
portions = [(right - left) * total for left, right in zip(base[:-1], base[1:])]
结果 ( print(portions)
):长度列表num_groups
(组数),其中包含分布total
(给定数量):
[2.5749833618941995, 0.010389749273946869, 0.3718137712569358, 0.3725336641218424, 1.6702794534530752]
推荐阅读
- javascript - MS Bot Framework 将值从服务器代码 (C#) 传递到前端代码 (JavaScript)
- scala - 播放框架 scala POST 和 Future
- php - 如何在给定此信息的情况下使用 API(PHP、Laravel)
- clojure - 查找包含表单的顶级表单的宏
- hashlib - 如何从 .txt 列表中获取数据并将结果保存在另一个 .txt 中?
- android - Android Gradle 同步失败 - 需要 Gradle 版本 2.2。当前版本是 5.4.1
- r - R t.test group by
- javascript - 切换单选按钮的父类(添加/删除)
- karate - 我如何在空手道 UI 中使用 javascript 执行器
- html - 如何让内联块从新行开始