http://qs321.pair.com?node_id=963274

in reply to Re^6: [OT] The statistics of hashing. (odd)
in thread [OT] The statistics of hashing.

I suspect you need to start \$toggle reversed for odd values

Indeed. Using my \$toggle = \$P & 1 ? 1 : -1;, the output makes much more sense:

you don't show most of the code so I didn't go much further in looking

The entire code looks like this:

```#! perl -slw
use strict;

sub PTn {
my @row;
for( 1 .. shift ) {
push @row, 1;
\$row [\$_] += \$row [\$_ - 1] for reverse 1 .. @row - 2;
}
return @row;
}

sub expN {
my( \$P, \$N, \$X ) = @_;
my \$xDIVn = \$X / \$N;
my @coefs = PTn( \$P+1 );
my \$rv = 0;
my \$toggle = \$P & 1 ? 1 : -1;
for my \$p ( reverse 1 .. \$P ) {
\$rv += \$toggle * \$coefs[ \$p ] * \$N / \$p * exp( -\$p * \$xDIVn );
\$toggle *= -1;
}
return \$rv + \$X;
}

our \$H //= 10;
our \$B //= 32;

print "Using N x 2**\$B vectors:";

for my \$inserts ( map{ 2**\$_*3/4, 2**\$_ } 4 .. \$B ) {
printf "%10d : ", \$inserts;
for my \$h ( 1 .. \$H ) {
printf "%6d ", expN( \$h, 2**\$B, \$inserts ) - expN( \$h, 2**\$B,
+0 );
}
print '';
}
[download]```

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

The start of some sanity?