#!/usr/bin/perl -w

# use bignum qw/e PI/;

use strict;

my $DEBUG = 0;
my $pi = 4*atan2(1,1);
print "pi = $pi\n" if $DEBUG;
my $pi2 = 8*atan2(1,1);
my $inv_sqpi2 = 1/sqrt($pi2);
my $e = exp(1);
print "e = $e\n" if $DEBUG;

my $z = $ARGV[0];
die "Wrong number as argument" unless ($z>0 && $z=~/[\d|\.]/ && defined $z);
my $step = 1_000_000;         # compromiso calidad/velocidad
my $inv_step = 1/$step;
my $STATIC = $inv_step * $inv_sqpi2;
my $r = 0.5;              # inicio en 0
# densidad de la distribución normal estandarizada
# Z = (1/sqrt(2*pi)) * exp(1)^(-0.5*z*z)

for ( my $i = $inv_step; $i <= $z; $i += $inv_step ) {
    $r += $STATIC * ($e**(-0.5*$i*$i));
#    print "\r$r" if $DEBUG;
}
# my $rr = sprintf ("%.7f",$r);
print "P[Z<=$z] = $r\n";
my $tailright = 1 - $r;
print "P[Z > $z] = $tailright\n";
my $tailleft = $tailright;
$r -= $tailleft;
print "P[-$z<=Z<=$z] = $r\n";

__END__
Esta utilidad nos devuelve la probabilidad de una tabla normal N(0,1) 
de una cola y de dos colas
