14 lines
360 B
CoffeeScript
14 lines
360 B
CoffeeScript
entropy = (s) ->
|
|
freq = (s) ->
|
|
result = {}
|
|
for ch in s.split ""
|
|
result[ch] ?= 0
|
|
result[ch]++
|
|
return result
|
|
|
|
frq = freq s
|
|
n = s.length
|
|
((frq[f]/n for f of frq).reduce ((e, p) -> e - p * Math.log(p)), 0) * Math.LOG2E
|
|
|
|
console.log "The entropy of the string '1223334444' is #{entropy '1223334444'}"
|