2013-04-10 81 views
-1

我有一个从0到1000以上的双打列表。我想将列表转换为正态分布并将每个项目转换为0到100之间的数字。我已经发现了很多关于如何计算平均值,标准偏差和随机数,但没有关于现在将列表转换为正态分布。转换列表<double>到0到100正态分布

+0

您能否提供您的代码? – 2013-04-10 03:47:44

+0

不幸的是,我没有任何代码。我实际上有一个列表范围从0到1000(实际上,最高的数字可以走得更高),我想用0和100之间的正态分布对这些数字进行归一化。 – 2013-04-10 16:09:43

回答

1
var list = new List<double> { ... }; 
var max = list.Max(); 
var desiredList = list.Select(p => (p/max) * 100).ToList(); 
+0

我已经实现了这个,但问题这是一个加权平均值。所以一个数字是1000,所有其他数字都低于500,然后1000变成100,500变成50。第一和第二之间的差异太大了,这就是为什么我想要规范数字。 – 2013-04-10 16:08:36

+0

@ user1233136,这取决于你的场景,你可以用任何函数映射这个数字,这是你的选择,我建议使用带有可选参数和系数的对数函数。 – 2013-04-10 19:44:26