line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Shannon::Entropy; |
2
|
|
|
|
|
|
|
|
3
|
2
|
|
|
2
|
|
143103
|
use 5.006; |
|
2
|
|
|
|
|
68
|
|
4
|
2
|
|
|
2
|
|
11
|
use strict; |
|
2
|
|
|
|
|
3
|
|
|
2
|
|
|
|
|
36
|
|
5
|
2
|
|
|
2
|
|
9
|
use warnings; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
73
|
|
6
|
|
|
|
|
|
|
|
7
|
2
|
|
|
2
|
|
782
|
use Import::Export; |
|
2
|
|
|
|
|
42595
|
|
|
2
|
|
|
|
|
14
|
|
8
|
|
|
|
|
|
|
|
9
|
2
|
|
|
2
|
|
76
|
use base qw/Import::Export/; |
|
2
|
|
|
|
|
5
|
|
|
2
|
|
|
|
|
350
|
|
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
our $VERSION = '1.101011'; |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
our %EX = ( |
14
|
|
|
|
|
|
|
entropy => [qw/all/] |
15
|
|
|
|
|
|
|
); |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
sub entropy { |
18
|
5
|
|
|
5
|
1
|
607
|
my ($entropy, $len, $p, %t) = (0, length($_[0])); |
19
|
5
|
|
|
|
|
64
|
$t{$_}++ foreach split '', $_[0]; |
20
|
5
|
|
|
|
|
20
|
foreach (values %t) { |
21
|
57
|
|
|
|
|
64
|
$p = $_/$len; |
22
|
57
|
|
|
|
|
73
|
$entropy -= $p * log $p; |
23
|
|
|
|
|
|
|
} |
24
|
5
|
|
|
|
|
113
|
return $entropy / log 2; |
25
|
|
|
|
|
|
|
} |
26
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
1; |
28
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
__END__ |