Entropy/Narcissist: Difference between revisions

Line 362:
{{out}}
<pre>4.89351613053006</pre>
 
=={{header|Phix}}==
Minor edit to the [[Entropy#Phix|Entropy]] answer, if compiled assumes source code is in the same directory.
<lang Phix>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(get_text(open(substitute(command_line()[2],".exe",".exw")),"rb"))</lang>
{{out}}
<pre>
4.993666233
</pre>
 
=={{header|Python}}==
7,795

edits