7 lines
237 B
Clojure
7 lines
237 B
Clojure
(defn entropy [s]
|
|
(let [len (count s), log-2 (Math/log 2)]
|
|
(->> (frequencies s)
|
|
(map (fn [[_ v]]
|
|
(let [rf (/ v len)]
|
|
(-> (Math/log rf) (/ log-2) (* rf) Math/abs))))
|
|
(reduce +))))
|