June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
24
Task/Entropy/BBC-BASIC/entropy.bbc
Normal file
24
Task/Entropy/BBC-BASIC/entropy.bbc
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue