相关疑难解决方法(0)

生成 N 个均匀随机数,总和为 M

这个问题以前曾被问过,但我从未见过一个好的答案。

  1. 我想生成 8 个总和为 0.5 的随机数。

  2. 我希望每个数字都是从均匀分布中随机选择的(即,下面的简单函数将不起作用,因为数字不会均匀分布)。

    def rand_constrained(n,tot):
        r = [random.random() for i in range(n)]  
        s = sum(r)
        r = [(i/s*tot) for i in r] 
        return r
    
    Run Code Online (Sandbox Code Playgroud)

该代码应该是可推广的,以便您可以生成 N 个均匀随机数,其总和为 M(其中 M 是正浮点数)。如果可能的话,您能否解释一下(或用图表示)为什么您的解决方案均匀地在适当的范围内生成随机数?

未达标的相关问题:

生成多个随机数以等于 python 中的值(当前接受的答案不统一 - 另一个统一的答案仅适用于整数)

获取N个随机数,总和为M(Java中的同一问题,当前接受的答案完全错误,也没有均匀分布的答案)

生成 R 中总和为 M 的 N 个随机整数(同样的问题,但在 R 中具有正态(非均匀)分布)

任何帮助是极大的赞赏。

python random algorithm distribution

6
推荐指数
1
解决办法
4078
查看次数

标签 统计

algorithm ×1

distribution ×1

python ×1

random ×1