REM >entropy PRINT FNentropy("1223334444") END : DEF FNentropy(x$) LOCAL unique$, count%, n%, ratio(), u%, i%, j% unique$ = "" n% = LEN x$ FOR i% = 1 TO n% IF INSTR(unique$, MID$(x$, i%, 1)) = 0 THEN unique$ += MID$(x$, i%, 1) NEXT u% = LEN unique$ DIM ratio(u% - 1) FOR i% = 1 TO u% count% = 0 FOR j% = 1 TO n% IF MID$(unique$, i%, 1) = MID$(x$, j%, 1) THEN count% += 1 NEXT ratio(i% - 1) = (count% / n%) * FNlogtwo(count% / n%) NEXT = -SUM(ratio()) : DEF FNlogtwo(n) = LN n / LN 2