/** * Calculates the amount of entropy in the given data. * * @param mixed $data * @return float */ public static function calculateEntropy($data) { self::$entropyNumEvents = 0; self::$entropyTokenFreqs = array(); self::$entropyTokenProbs = array(); self::$entropyValue = 0; self::$entropyData = $data; self::$entropyNumEvents = strlen((string) self::$entropyData); self::entropyFrequencies(); foreach (self::$entropyTokenFreqs as $token => $frequency) { self::$entropyTokenProbs[$token] = $frequency / self::$entropyNumEvents; self::$entropyValue += self::$entropyTokenProbs[$token] * log(self::$entropyTokenProbs[$token], 2); } self::$entropyValue = -self::$entropyValue; return self::$entropyValue; }