在给定平均值且有上下误差的情况下,计算分裂正态分布的最佳方法是什么?
到目前为止,我有:
from random import choice, gauss
def random_split_normal(mu: float, upper_sigma: float, lower_sigma:int) -> float:
return abs(gauss(0.0, 1.0)) * choice([upper_sigma, -lower_sigma]) + mu
我多次调用它来生成一个数组:
random_array = []
for _ in range(1000):
random_array.append(random_split_normal(1.0, 2.0, 1.0))
在制作random_array
的直方图时会产生以下结果:
我想知道随机使用upper_sigma
或lower_sigma
是执行此操作的正确方法吗?
答案 0 :(得分:1)
您的解决方案在数学上是等效的,但是效率较低,因为您不必要地使用abs()和choice()来查看gauss()的符号。
这应该接近定义。我还改正了sigma,使其与我们通常的数字线方向一致(左侧为负无穷大)
<form>
<select multiple="multiple" name="city" id="city_name">
<option value="a">A</option>
<option value="b"> B </option>
<option value="c"> C</option>
<option value="d"> D</option>
</select>
<button type="button" onclick="get_city_name()">select multiple</button>
<select multiple="multiple" name="get" id="new_list">
</select>
</form>