Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 


Página 1 de 1  [ 4 mensajes ] 
 
Nota Lun Ago 04, 2008 7:01 pm
Avatar de Usuario
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:
Syntax: [ Download ] [ Hide ]
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


Nota Mar Feb 10, 2009 2:46 pm
Avatar de Usuario
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...
Syntax: [ Download ] [ Hide ]
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?


Nota Sab Feb 14, 2009 12:32 pm

Perlero Frecuente
Registrado: Lun Oct 29, 2007 6:31 am
Ubicación: Praga, Republica Checa
Mensajes: 132
Syntax: [ Download ] [ Hide ]
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 :-)


Nota Jue Mar 05, 2009 8:29 pm
Avatar de Usuario
Vive para Perl en Español
Registrado: Jue Feb 23, 2006 4:17 pm
Ubicación: Frente al monitor
Mensajes: 591
Jenda escribió:
Syntax: [ Download ] [ Hide ]
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?


Responder al tema  [ 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

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO