[Programación] Re: [Programación] Transformar algoritm
o en pseudolenguaje a perl (aca me doy.
..)
Nicolás Aimetti
programacion@lugro.org.ar
Thu, 08 Dec 2005 10:52:12 +0000
Hola...
Acá te tiró algunas ideas basandome en lo que pusiste al principio...
Ojó, no me puse a mirar el algoritmo completo (ni siquiera como
empieza), sólo hice algunas de las cosas que mencionaste al principio,
más tarde si ando con más tiempo me pongo a ver bien el algoritmo...
#!/usr/bin/perl -w
use strict;
#Entrada el vector vectores A[1..N] donde los elementos son un TAD
#{a1,a2} (estructura de datos) tal que A[i].a2=F(A[i].a1), pude haber
#elementos repetidos y la función no es inyectiva... Salida una matriz
#binaria (en representación vector), donde solo imprimo los elementos no
#nulo, se inicia toda con ceros. (si ya sé que es complejo y no le
#estudié la complejidad para sacarle el N**p... pero no es relevante eso)
#Supongo que a1,a2 son de tipo numerico, aunque realmente no importa, es
#un ejemplo nomás
my @A = ( #una simple lista, que contiene otras listas...
[ 1, undef], #A[0].a1 = 1, A[0].a2 = indefinido aun
[ 4, undef], #A[1].a1 = 4, A[1].a2 = indefinido aun
[ 8, undef], #etc...
[ 10, undef],
[ 12, undef],
[ 3, undef],
[ 4, undef],
);
#definimos una funcion f/ f(x) = x**2 (x al cuadrado), como para
ejemplificar,
#f podría ser cualquier otra cosa...
sub F{
my $a = shift;
return $a**2;
}
#aplicamos f a A para obtener A[i].a2=F(A[i].a1)
my @B = map { my ($a1,$a2) = @$_; $a2 = F($a1); [$a1,$a2] } @A;
#ordenamos B lexicograficamente con respecto a a1
@B = sort { $a->[0] <=> $b->[0] } @B;
#mostramos B
print "(\n";
print "\t",join(',',@$_),$/ for @B ;
print ")\n";
_END_
Cualquier cosa que no se entienda bien preguntá nomás...
Más tarde sigo respondiendo.
Saludos,
Nicolás.