为了账号安全,请及时绑定邮箱和手机立即绑定

Java中有没有一种方法可以生成遵循固定均值和标准差的随机数?

Java中有没有一种方法可以生成遵循固定均值和标准差的随机数?

HUWWW 2023-11-10 16:34:17
问题我知道如何生成具有固定平均值和标准差的随机数。我还希望这些值被限制在一个范围内(我理解这意味着结果不会是真正的高斯分布,而是剪裁的高斯分布)语境我试图回答的更广泛的问题是假设你有一个黑匣子,每 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 之间。


查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信