Advertisement
ChristophX86

Entropy

Mar 16th, 2013
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 0.45 KB | None | 0 0
  1. Local $Bitstream = "01010101010101010101010101010101"
  2.  
  3. Local $n = StringLen($Bitstream), $i, $0 = 0, $1 = 0, $Entropy
  4. For $i = 1 To $n
  5.     Switch StringMid($Bitstream, $i, 1)
  6.         Case "0"
  7.             $0 += 1
  8.         Case "1"
  9.             $1 += 1
  10.     EndSwitch
  11. Next
  12.  
  13. $Entropy = -($0/$n)*Log2($0/$n) - ($1/$n)*Log2($1/$n)
  14. ConsoleWrite(StringFormat("%s\n~ %s BIT(S) OF ENTROPY\n", $Bitstream, Abs($Entropy)))
  15.  
  16. Func Log2($n)
  17.     If ($n = 0) Then Return 0
  18.     Return Log($n)/Log(2)
  19. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement