如何对N个随机值进行采样,从而满足以下约束条件?
以下是我的第一次尝试。
def proportions(N):
proportions = list()
for value in sorted(numpy.random.random(N - 1) * 0.98 + 0.01):
prop = value - sum(proportions)
proportions.append(prop)
prop = 1.0 - sum(proportions)
proportions.append(prop)
return proportions* 0.98 + 0.01位旨在强制执行≥1%约束。这在边距上起作用,但在内部不起作用--如果两个随机值的距离小于0.01,则不会捕获/校正。示例:
>>> numpy.random.seed(2000)
>>> proportions(5)
[0.3397481983960182, 0.14892479749759702, 0.07456518420712799, 0.005868759570153426, 0.43089306032910335]有什么建议来修正这个破碎的方法或者用一个更好的方法来取代它吗?
发布于 2019-06-25 18:41:30
那这个呢?
https://stackoverflow.com/questions/56760095
复制相似问题