Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
24
Task/Entropy/BBC-BASIC/entropy.basic
Normal file
24
Task/Entropy/BBC-BASIC/entropy.basic
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