# Binomial standard deviation, from PerlMonks node [477227] # Standard deviation = SQR{(N*p*(1-p)} # Represent upvotes as 1, downvotes as 0 (or vice-versa) sub b_stddev { my $N = @_ or return 0; my $p = (grep $_, @_) / $N; sqrt($N * $p * (1-$p)); } my @samples = (1, 3, 8, 20); for (map {my $x=$_; map [$x, $_], grep $x >= $_, @samples} @samples) { printf "%2d %2d: %3.4f\n", @$_, b_stddev((1) x $_->[0], (0) x $_->[1]); }