F#数学库 - 计算中位数

JP.*_*JP. 3 algorithm f#

我想知道是否有人知道微软(或其他库)计算F#中数组/列表/整数序列的中位数.我看到平均功能,但没有中位数.

提前致谢,

J.P

Ste*_*sen 8

挑选@Brian和@BrokenGlass离开的地方......

let inline median input = 
    let sorted = input |> Seq.toArray |> Array.sort
    let m1,m2 = 
        let len = sorted.Length-1 |> float
        len/2. |> floor |> int, len/2. |> ceil |> int 
    (sorted.[m1] + sorted.[m2] |> float)/2.

//by marking the function inline, we gain some extra flexibility with static member constraints
//val inline median :
//  seq< ^a> -> float
//    when  ^a : comparison and  ^a : (static member ( + ) :  ^a *  ^a ->  ^b) and
//          ^b : (static member op_Explicit :  ^b -> float)
Run Code Online (Sandbox Code Playgroud)

(有点让我渴望数字类型之间的隐式转换)

这是一个描述平均O(n)算法和C#实现的链接.