#!/usr/bin/perl

use 5.040.3;

my $densidad = 4000;    # habitantes/km²  EL OBJETIVO

# Para simular densidad en 1000 * 1000 metros tomo una cuadrícula
# imaginaria de edificios de 30 * 30 m. y viales de un ancho de 30 m.
# Cada edificio tiene bajos sin habitar y 5 pisos de 100 m²
# Cada piso se supone que alberga 3 personas, 15 personas por planta
# Supongo que el edificio es la forma más económica de residir.

my $num_edificios = int (1000 / (30 + 30)); # 30 construido, 30 calle
my $densidad_edificios = $num_edificios ** 2;   # cuadrícula
my $densidad_planta = 15; # personas/planta baja

say "Densidad objetivo = $densidad hab/km²";
say "Densidad lineal de calles y edificios por km = $num_edificios";
say "Densidad supuesta de edificios = $densidad_edificios edif/km²";  
say "Densidad supuesta por planta no baja = $densidad_planta personas\n";

my $d = 0;
my $altura = 1;           # saldrá menor altura que cumpla la densidad
while ($d < $densidad){
    say "ALTURA = $altura";
    my $hab_edif = $altura * $densidad_planta;
    say "Habitantes por edificio = $hab_edif";
    $d = $hab_edif * $densidad_edificios;
    say "Densidad conseguida por km² = $d\n";
    $altura++;
}

say "\nComo $d es superior a $densidad habitantes/km² se para.\n";
say "Fin de la simulación ", scalar(localtime());

exit 2;


