September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
28
Task/Entropy/Phix/entropy.phix
Normal file
28
Task/Entropy/Phix/entropy.phix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
function log2(atom v)
|
||||
return log(v)/log(2)
|
||||
end function
|
||||
|
||||
function entropy(sequence s)
|
||||
sequence symbols = {},
|
||||
counts = {}
|
||||
integer N = length(s)
|
||||
for i=1 to N do
|
||||
object si = s[i]
|
||||
integer k = find(si,symbols)
|
||||
if k=0 then
|
||||
symbols = append(symbols,si)
|
||||
counts = append(counts,1)
|
||||
else
|
||||
counts[k] += 1
|
||||
end if
|
||||
end for
|
||||
atom H = 0
|
||||
integer n = length(counts)
|
||||
for i=1 to n do
|
||||
atom ci = counts[i]/N
|
||||
H -= ci*log2(ci)
|
||||
end for
|
||||
return H
|
||||
end function
|
||||
|
||||
?entropy("1223334444")
|
||||
Loading…
Add table
Add a link
Reference in a new issue