仅在钟形曲线围绕可变均值生成的情况下,如何以1到10的钟形曲线以0.5的增量对数组中的对象评分

时间:2019-07-09 15:34:15

标签: javascript algorithm statistics

我有一个对象数组,每个对象看起来像这样:

{
  name: "John Doe",
  score: ""
}

在一个数组中有多个此类对象,该数组实际上是按从最佳到最差的顺序排列的,因此在一个看起来像这样的数组中:

[{name: "John Doe", score: ""}, {name: "Jane Doe", score: ""}, ..., {name: "Adam Smith", score: ""}]

John Doe的得分最高,而Adam Smith的得分最低。

目标是获取平均得分和其他必要条件(例如标准差)作为输入,并在钟形曲线上对该数组中的每个人进行得分,在该平均值附近得分将增加0.5,以便1、1.5、2、2.5,...,9.5、10。这应该适用于多达数百个元素的大型数组。

1 个答案:

答案 0 :(得分:2)

这更多是一个统计问题,但是要生成这样一组正态分布的随机数,您需要使用逆正态分布公式。

enter image description here

其中x是0到1之间的随机值,μ是所需的平均值,而σ是所需的标准偏差。可能有一些具有现成的norminv函数的javascript统计库。

,因此您将使用所需的记录数量来运行该函数多次,使用随机数生成器(0-1)作为x的输入,并使用所需的均值和标准dev,然后排序结果值并将其添加到您的记录中。结果应该很好地符合钟形曲线。

对于量化为0.5的增量,您可能只需要使用某种形式的舍入即可。