16 lines
410 B
Plaintext
16 lines
410 B
Plaintext
go =>
|
|
["1223334444",
|
|
"Rosetta Code is the best site in the world!",
|
|
"1234567890abcdefghijklmnopqrstuvwxyz",
|
|
"Picat is fun"].map(entropy).println(),
|
|
nl.
|
|
|
|
% probabilities of each element/character in L
|
|
entropy(L) = Entropy =>
|
|
Len = L.length,
|
|
Occ = new_map(), % # of occurrences
|
|
foreach(E in L)
|
|
Occ.put(E, Occ.get(E,0) + 1)
|
|
end,
|
|
Entropy = -sum([P2*log2(P2) : _C=P in Occ, P2 = P/Len]).
|