Javascript 如何仅使用围绕可变平均值生成的钟形曲线,以0.5的增量对钟形曲线上从1到10的数组中的对象进行评分

Javascript 如何仅使用围绕可变平均值生成的钟形曲线,以0.5的增量对钟形曲线上从1到10的数组中的对象进行评分,javascript,algorithm,statistics,Javascript,Algorithm,Statistics,我有一个对象数组,其中每个对象如下所示: { name: "John Doe", score: "" } [{name: "John Doe", score: ""}, {name: "Jane Doe", score: ""}, ..., {name: "Adam Smith", score: ""}] 在一个数组中有多个此类对象,其中数组从最佳到最差进行有效排序,因此在一个如下所示的数组中: { name: "John Doe", score: "" } [{name:

我有一个对象数组,其中每个对象如下所示:

{
  name: "John Doe",
  score: ""
}
[{name: "John Doe", score: ""}, {name: "Jane Doe", score: ""}, ..., {name: "Adam Smith", score: ""}]
在一个数组中有多个此类对象,其中数组从最佳到最差进行有效排序,因此在一个如下所示的数组中:

{
  name: "John Doe",
  score: ""
}
[{name: "John Doe", score: ""}, {name: "Jane Doe", score: ""}, ..., {name: "Adam Smith", score: ""}]
约翰·多伊在所有人中得分最高,亚当·斯密得分最低


目标是将平均分数和任何其他必要的东西(如标准差)作为输入,并在钟形曲线上对数组中的每个人进行评分,评分以0.5的增量递增,因此他们将为1、1.5、2、2.5、…、9.5、10。这应该适用于多达数百个元素的大型数组。

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

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

因此,您可以根据您希望填充的记录数量,根据需要多次运行该函数,使用随机数生成器(0-1)作为x的输入,以及所需的平均值和标准偏差,然后对结果值进行排序并将其添加到记录中。结果应该很好地符合钟形曲线


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

因此,所有对象都将获得19个可能分数中的一个(1,1.5,…,9.5,10),其中可能有几个分数相同,并且从左到右通过数组时分数不会增加。对吗?当平均值为10(最大值)且标准偏差为1时,您希望得到哪种输出?那还能产生全部10秒吗?或者,当平均值为9.5时,这是否意味着该值仅限于10、9.5和9(以标准偏差为准)?