RosettaCodeData/Task/Entropy/Clojure/entropy-1.clj

8 lines
237 B
Clojure
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
(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 +))))