open System
let ld x = Math.Log x / Math.Log 2.
let entropy (s : string) =
let n = float s.Length
Seq.groupBy id s
|> Seq.map (fun (_, vals) -> float (Seq.length vals) / n)
|> Seq.fold (fun e p -> e - p * ld p) 0.
printfn "%f" (entropy "1223334444")