#!/usr/bin/perl -w

use 5.034;

# La estrategia de fijar precios de museos intuyo que es binaria: o gratis, y hacer bandera
# o bien fijar un precio alto para que todo el mundo (interno y externo) sepa que es valioso
# y hay que poner cuidado. Orientativamente calculo el precio cuyo valor actual por visitas 
# iguala el valor intrínseco del museo

my $interest = 0.03;
say "Interest = $interest";

my $duration = 100;
say "Duration = $duration";

my @visits = (10_000,100_000,200_000,500_000,1_000_000,2_000_000,5_000_000,10_000_000);
my @valor_intrinseco = (1_000_000,5_000_000,10_000_000,50_000_000,100_000_000,500_000_000,1_000_000_000,10_000_000_000,100_000_000_000);

say "TABLE OF PRICES";
print "Millions intrinsic value/thousands visits:";
print fixed($_/1000) for (@visits); 
say "";
for my $i (@valor_intrinseco){
    print fixed($i/1_000_000), ":                          "; 
    for my $j (@visits){
	print fixed(calc($i/1000000,$j/1000));
    }
    say "";
}

exit 3;


sub fixed {
    my $val = shift;
    my $x = 0;
    if ( $val =~ /\./ ){
	$x = sprintf "%.02f", $val;
    }else{
	$x = $val;
    }
    my $r .= " " x abs(15-length($x)) . "$x";
    return $r;
}

sub calc {
    my ($V, $n) = @_;
    my $r = $V * 1000000 * $interest / ($n * 1000 * (1-(1+$interest)**(-$duration)));
    return $r;
}
    


