julia> entropy(s)=-sum(x->x*log(2,x), [count(x->x==c,s)/length(s) for c in 
unique(s)]);

julia> s=rand(10^3);

julia> @time entropy(s)
elapsed time: 0.167097546 seconds (20255140 bytes allocated)
9.965784284662059

julia> s=rand(10^4);

julia> @time entropy(s)
elapsed time: 3.62008077 seconds (1602061320 bytes allocated, 21.81% gc 
time)
13.287712379549843

julia> s=rand(10^5);

julia> @time entropy(s)
elapsed time: 366.181311932 seconds (160021245832 bytes allocated, 21.89% 
gc time)
16.609640474434073

julia> s=rand(10^6);

julia> @time entropy(s)
................................
After 12 h not yet counted :/

Paul

Reply via email to