Algorithm-LossyCount
view release on metacpan or search on metacpan
t/Algorithm/LossyCount.t view on Meta::CPAN
sub zipf_distribution {
my ($num_samples) = @_;
my $partition_function = sum map { 1 / $_ } 1 .. $num_samples;
return sub {
my ($i) = @_;
1 / ($i * $partition_function);
};
}
throws_ok {
Algorithm::LossyCount->new;
} qr/max_error_ratio/, 'max_error_ratio is a mandatory parameter.';
my $num_samples = 20000;
my $distribution = zipf_distribution($num_samples);
my %sample_frequencies;
for my $i (1 .. $num_samples) {
my $probability = $distribution->($i);
my $frequency = int ($probability * $num_samples);
next if $frequency == 0;
( run in 0.333 second using v1.01-cache-2.11-cpan-496ff517765 )