Lun Ago 04, 2008 7:01 pm |
|
|
 |
explorer
Administrador
|
Registrado: Dom Jul 24, 2005 6:12 pm Ubicación: Valladolid, España Mensajes: 9492
|
|
|
La cifra verdadera
|
En Europa tenemos las siguientes monedas de Euro: €0,01 €0,02 €0,05 €0,10 €0,20 €0,50 €1,00 €2,00 Alguien nos da un puñado de monedas. Por ejemplo: Using perl Syntax Highlighting @bote = ( 0.20, 0.01, 0.02, 0.20, 0.50, 1.00, 0.50, 0.10, 0.10, 0.05 ); Nosotros deberíamos poder entonces hacer la suma y dar la cifra de Euros que tenemos... pero... algunas de esas monedas son falsas. De hecho, sabemos: * Que al menos una de las monedas es falsa * Que al menos una de las monedas es verdadera Cuestión: queremos obtener todas las combinaciones de sumas posibles de todas las monedas. Por ejemplo: €0.01 €0.02 €0.03 €0.10 €0.11 ... €2.67
|
Mar Feb 10, 2009 2:46 pm |
|
|
 |
creating021
Vive para Perl en Español
|
Registrado: Jue Feb 23, 2006 4:17 pm Ubicación: Frente al monitor Mensajes: 591
|
|
|
|
El código no es muy bueno, pero me dio por hacerlo, si se puede mejorar, me gustaría saber cómo... Using perl Syntax Highlighting #!/usr/bin/env perl
use strict;
use warnings;
my @bote = ( 0.20, 0.01, 0.02, 0.20, 0.50, 1.00, 0.50, 0.10, 0.10, 0.05 );
my %pos;
sub encontrar_total {
my @can = @_;
my $i = $#can;
for ( $i; $i > 0; $i-- ) {
my $euros = 0;
$euros += $_ for ( @can[ 0..$i ] );
$pos{ $euros } += 1;
}
}
do { $pos{ $_ } += 1 } for ( sort @bote );
encontrar_total( @bote );
encontrar_total( reverse @bote );
foreach my $cant ( keys %pos ) {
my $e = " " x ( 6 - ( length $cant ) );
print ( $cant . $e . "-> " . $pos{$cant} . " Posibilidad(es)\n" );
}
_________________ Expect the worst, is it the least you can do?
|
Sab Feb 14, 2009 12:32 pm |
|
|
Jenda
Perlero Frecuente
|
Registrado: Lun Oct 29, 2007 6:31 am Ubicación: Praga, Republica Checa Mensajes: 132
|
|
|
|
Using perl Syntax Highlighting printf "%-6d -> %d Posibilidad(es)\n", $cant, $pos{$cant};
_________________ -------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas
|
Jue Mar 05, 2009 8:29 pm |
|
|
 |
creating021
Vive para Perl en Español
|
Registrado: Jue Feb 23, 2006 4:17 pm Ubicación: Frente al monitor Mensajes: 591
|
|
|
|
Jenda escribió: Using perl Syntax Highlighting printf "%-6d -> %d Posibilidad(es)\n", $cant, $pos{$cant}; ¡Claro, buen dato! Gracias Jenda 
_________________ Expect the worst, is it the least you can do?
|
|
Página 1 de 1
|
[ 4 mensajes ] |
|
| Reglas del Foro |
No puedes abrir nuevos temas en este Foro No puedes responder a temas en este Foro No puedes editar tus mensajes en este Foro No puedes borrar tus mensajes en este Foro No puedes enviar adjuntos en este Foro
|
|
Socializa |
 |
|