我会尝试以下解决方案:
如果总和为1,我可以将这些值除以它们的总和。但是,当总和为0时,此方法不适用。
也许我可以计算每个采样值的相反值,所以我总是会有一对数字,它们的和为0。但是这种方法减少了我希望在随机数组中拥有的“随机性”。] >
还有更好的方法吗?
如果总和为1,我可以将这些值除以它们的总和。但是,当总和为0时,此方法不适用。也许我可以计算每个采样值的相反值,所以我将始终......>
我会尝试以下解决方案:
def draw_randoms_while_sum_not_zero(eps):
r = random.uniform(-1, 1)
sum = r
yield r
while abs(sum) > eps:
if sum > 0:
r = random.uniform(-1, 0)
else:
r = random.uniform(0,1)
sum += r
yield r
我会尝试以下解决方案: