RosettaCodeData/Task/Entropy/Tcl/entropy-1.tcl
Ingy döt Net 86c034bb8b new files
2013-04-10 12:38:42 -07:00

10 lines
311 B
Tcl

proc entropy {str} {
set log2 [expr log(2)]
foreach char [split $str ""] {dict incr counts $char}
set entropy 0.0
foreach count [dict values $counts] {
set freq [expr {$count / double([string length $str])}]
set entropy [expr {$entropy - $freq * log($freq)/$log2}]
}
return $entropy
}