RosettaCodeData/Task/Entropy/Go/entropy-2.go

23 lines
317 B
Go

package main
import (
"fmt"
"math"
)
func main() {
const s = "1223334444"
l := float64(0)
m := map[rune]float64{}
for _, r := range s {
m[r]++
l++
}
var hm float64
for _, c := range m {
hm += c * math.Log2(c)
}
fmt.Println(math.Log2(l) - hm/l)
}