function entropy {
typeset -i i len=${#1}
typeset -X13 r=0
typeset -Ai counts
for ((i = 0; i < len; ++i))
do
counts[${1:i:1}]+=1
done
for i in "${counts[@]}"
r+='i * log2(i)'
r='log2(len) - r / len'
print -r -- "$r"
}
printf '%g\n' "$(entropy '1223334444')"