看起来很简单,但我想要一个公式(最好是.net):
对于给定的数字 - 比如说 1.5 - 公式将输出一个随机数,该数字在一系列中平均约为 1.5...所以它可能是 0.1、1.2、7.1、2.5、.2 等,但平均值将接近1.5。
澄清:我希望这些数字是正数。
public class RandomAroundAverage
{
Random r = new Random();
public double Random(double middle, double scale)
{
return r.NextDouble() * scale - (scale / 2) + middle;
}
}
then
var v = r.Random(1.5, 20);
它将生成随机数 -8.5 -> 11.5
并看到它的实际效果......
var r = new RandomAroundAverage();
var sum = 0.0;
for (int i = 0; i < 10000; i++)
{
var v = r.Random(1.5, 20);
sum += v;
Console.WriteLine(string.Format("Value: {0} Average: {1}", v, sum/i));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)