in reply to Hypergeometric test

Hi,
Here is some modification from Wolf Book (pp.596 ff). The notation is based on this. It also uses Math::Pari. For related topic you may find this node helpful.
#!/usr/bin/perl -w use strict; use Data::Dumper; use Math::Pari qw/binomial pari2num/; my $val = hypergeometric(5,3,53,5); print "Hyper = $val\n"; sub hypergeometric { my ($M,$p,$F,$n) = @_; return unless $n>0 && $n == int($n) && $p > 0 && $p == int($p) && $M > 0 && $M <= $n+$p; return 0 unless $p <= $M && $p == int($p); return pari2num((binomial($M,$p) * binomial($F-$M, $n-$p) / binomial($F,$n))); }
That gives:
Hyper = 0.00393074501208321
Regards,
Edward