22 lines
317 B
Go
22 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)
|
|
}
|