我怎样才能用c#进行平均反转?

我怎样才能用c#进行平均反转?,c#,function,average,inverse,C#,Function,Average,Inverse,我需要创建一个函数,如果我输入一个数字,返回3个数字,即你的平均范围与我传递的数字相同 比如说 如果我输入数字3,92,返回值是数字3,89 3,57 4,3的列表(随机化)这里有一个方法可以做到这一点 public double[] AverageReverse(double targetAverage, double range) { var r = new Random(); // TODO: Cache it between calls to avoid "why does ny

我需要创建一个函数,如果我输入一个数字,返回3个数字,即你的平均范围与我传递的数字相同

比如说


如果我输入数字3,92,返回值是数字3,89 3,57 4,3的列表(随机化)

这里有一个方法可以做到这一点

public double[] AverageReverse(double targetAverage, double range)
{
    var r = new Random(); // TODO: Cache it between calls to avoid "why does ny Random class only produce the same numbers?"
    var n1 = targetAverage - r.NextDouble() * range;
    var n2 = targetAverage + r.NextDouble() * range;
    var n3 = 3 * targetAverage - (n1 + n2);

    return new[] { n1, n2, n3 };
}
例如:

var ar = AverageReverse(3.92, 0.5);
// returns (example):
//   3,76575929136284 
//   3,98495292557634 
//   4,00928778306082 
// average:
//   3.92
其工作原理是通过求解以下方程:

average = (n1 + n2 + n3) / 3
对于n3,给出了:

    average             = (n1 + n2 + n3) / 3
3 * average             =  n1 + n2 + n3
3 * average - (n1 + n2) =            n3
因此:


你的问题没有任何意义。没有意义?在
x
input上,
返回新的双精度[]{x,x,x}
你自己尝试过吗?
n3 = 3 * average - (n1 + n2)