百分位数计算

我想用C#(或用一些伪代码)模仿Excel等效的PERCENTILE函数。我怎样才能做到这一点?该函数应带有两个参数,第一个是值列表,第二个是函数应计算的百分位数。

坦克!

很抱歉,如果我遇到自己未曾尝试过的问题。我只是不明白excel函数是如何工作的(是的,我先尝试了Wikipedia和Wolfram),我想如果有人用代码展示它,我会更好地理解它。@CodeInChaos给出的答案似乎就是我所追求的。

回答:

我认为Wikipedia页面包含您需要编写自己的函数的公式…

我尝试过此操作:

public double Percentile(double[] sequence, double excelPercentile)

{

Array.Sort(sequence);

int N = sequence.Length;

double n = (N - 1) * excelPercentile + 1;

// Another method: double n = (N + 1) * excelPercentile;

if (n == 1d) return sequence[0];

else if (n == N) return sequence[N - 1];

else

{

int k = (int)n;

double d = n - k;

return sequence[k - 1] + d * (sequence[k] - sequence[k - 1]);

}

}

Excel使用0到1之间的百分位值(因此我更改了代码以使用Wikipedia公式实现此值),并使用另一种方法来计算n(因此我更改了注释的值)。

以上是 百分位数计算 的全部内容, 来源链接: utcz.com/qa/425690.html

回到顶部