问题我知道如何生成具有固定平均值和标准差的随机数。我还希望这些值被限制在一个范围内(我理解这意味着结果不会是真正的高斯分布,而是剪裁的高斯分布)语境我试图回答的更广泛的问题是假设你有一个黑匣子,每 10 秒放出一只猴子,猴子的高度在 24 到 36 英寸之间。半小时内生成的猴子的身高服从正态分布,平均值为 30.5 英寸,标准差为 2.5。虽然房间里还有另一个盒子,如果猴子的高度低于 28 英寸,就会导致猴子消失,但这种情况每 20 秒就会发生一次。编写一个程序来计算 n 天后房间里剩下的猴子数量(n 是用户输入)。为了逻辑起见,假设房间足够大,可以容纳无限数量的猴子,并且它们有食物。
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
nextGaussian() 方法返回平均值为 0、标准差为 1 的随机数。
这意味着 nextGaussian() 返回的数字将倾向于在 0 附近“聚集”,并且(大约)70% 的值将在 -1 和 1 之间。根据 nextGaussian() 返回的值,您可以缩放和移动他们得到其他正态分布:
要更改分布的 maen(平均值),请添加所需的值;
要更改标准差,请乘以该值。
示例:生成平均值为 500、标准差为 100 的值:
double val = r.nextGaussian() * 100 + 500;
生成平均值为 30.5、标准差为 2.5 的值:
double val = r.nextGaussian() * 2.5 + 30.5;
这 70% 的值将在 28 到 33 之间。由于 99.7% 的值位于 3-sigma 范围内,因此猴子的身高在 24 到 36 之间。
添加回答
举报
0/150
提交
取消