Java 用标准差生成随机数

Java 用标准差生成随机数,java,random,Java,Random,我正在用人工智能做一个非常简单的模拟游戏。 该游戏将包含具有随机属性的对象的人实例,这些对象有一定数量的钱可花 我希望财富分配在统计上是有效的。 如何生成符合标准偏差的随机数货币,例如平均值:50,标准偏差:10,从而更可能生成接近平均值的值?我认为您关注的问题是错误的。你需要做的第一件事是确定你想要用来模拟财富的分布。平均值为50、标准偏差为10的正态分布名义上满足您的需求,但范围内的均匀分布也满足您的需求[32.67949,67.32051]。有许多统计分布可能具有相同的平均值和标准偏差,但

我正在用人工智能做一个非常简单的模拟游戏。 该游戏将包含具有随机属性的对象的人实例,这些对象有一定数量的钱可花

我希望财富分配在统计上是有效的。
如何生成符合标准偏差的随机数货币,例如平均值:50,标准偏差:10,从而更可能生成接近平均值的值?

我认为您关注的问题是错误的。你需要做的第一件事是确定你想要用来模拟财富的分布。平均值为50、标准偏差为10的正态分布名义上满足您的需求,但范围内的均匀分布也满足您的需求[32.67949,67.32051]。有许多统计分布可能具有相同的平均值和标准偏差,但具有完全不同的形状,正是这种形状决定了分布的有效性

收入和财富的分布非常复杂——它们的界限在零以下,而与我们其他人相比,少数人的收入和财富非常大,以至于他们将平均值向上拉了相当可观的距离。因此,您不希望使用简单的分布选择,例如均匀分布或高斯分布,或任何其他对称分布或可能陷入负区域的分布。使用指数将更加现实,但仍然可能不够极端,无法捕捉我们在现实世界中看到的实际财富分布


一旦你选择了一个发行版,就会有很多软件库或信息源可以帮助你从发行版中产生价值。

我认为你把重点放在了问题的错误一端。你需要做的第一件事是确定你想要用来模拟财富的分布。平均值为50、标准偏差为10的正态分布名义上满足您的需求,但范围内的均匀分布也满足您的需求[32.67949,67.32051]。有许多统计分布可能具有相同的平均值和标准偏差,但具有完全不同的形状,正是这种形状决定了分布的有效性

收入和财富的分布非常复杂——它们的界限在零以下,而与我们其他人相比,少数人的收入和财富非常大,以至于他们将平均值向上拉了相当可观的距离。因此,您不希望使用简单的分布选择,例如均匀分布或高斯分布,或任何其他对称分布或可能陷入负区域的分布。使用指数将更加现实,但仍然可能不够极端,无法捕捉我们在现实世界中看到的实际财富分布


一旦你选择了一个发行版,就会有许多软件库或信息源帮助你从该发行版中生成值。

生成随机数是一个广泛的话题。但既然你说这是一个简单的模拟,那么这里有一个简单的方法:

生成多个均匀分布在0,1上的随机数(假设为n)。内置函数Math.random可以提供这些数字

把那些数字加起来。总和具有近似正态分布,平均值=n/2,标准偏差=sqrtn/sqrt12。所以如果你减去n/2,然后除以sqrtn/sqrt12,你会得到一个近似正态的值,平均值为0,标准偏差为1。显然,如果你选择n=12,你所要做的就是从总和中减去6,你就完成了

现在要得到任何其他的平均值和标准偏差,只需乘以你想要的标准偏差,再加上你想要的平均值


还有很多其他的方法,但这也许是最简单的。根据你对问题的描述,我想这没问题

生成随机数是一个广泛的话题。但既然你说这是一个简单的模拟,那么这里有一个简单的方法:

生成多个均匀分布在0,1上的随机数(假设为n)。内置函数Math.random可以提供这些数字

把那些数字加起来。总和具有近似正态分布,平均值=n/2,标准偏差=sqrtn/sqrt12。所以如果你减去n/2,然后除以sqrtn/sqrt12,你会得到一个近似正态的值,平均值为0,标准偏差为1。显然,如果你选择n=12,你所要做的就是从总和中减去6,你就完成了

现在要得到任何其他的平均值和标准偏差,只需乘以你想要的标准偏差,再加上你想要的平均值


还有很多其他的方法,但这也许是最简单的。根据你对问题的描述,我想这没问题

你想要什么样的分销?当我听到标准差时,我认为是正态分布。或者你想得到关于使用哪种发行版的建议?哪种发行版
你想要什么?当我听到标准差时,我认为是正态分布。或者你需要关于使用什么分布的建议吗?这是一种生成近似正态值的非常糟糕的方法。既然Java已经提供了Random.nextGaussian,那么OP为什么要这样做呢?因为它很简单。更简单的方法是使用Random.nextGaussian。这是一种生成近似正常值的非常糟糕的方法。既然Java已经提供了Random.nextGaussian,那么OP为什么要这样做呢?因为它很简单。更简单的方法是使用Random.nextGaussian。