09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

20.1. <strong>Algoritmos</strong> devoradores 451<br />

begin<br />

d:= 2;<br />

while n > 1 do begin<br />

Dividir n por d cuantas veces (k) se pueda<br />

Escribir ’d k ’<br />

d:= d + 1<br />

<strong>en</strong>d {while}<br />

<strong>en</strong>d; {Descomponer}<br />

20.1.2 Adecuación al problema<br />

Otro ejemplo, quizá el más conocido de este esquema, es el de <strong>en</strong>contrar el<br />

“cambio de moneda” de manera óptima (<strong>en</strong> el s<strong>en</strong>tido de usar el m<strong>en</strong>or número de<br />

monedas posible) para una cantidad de dinero dada: 1 <strong>en</strong> cada fase, se considera<br />

una moneda de curso legal, de mayor a m<strong>en</strong>or valor, y se cambia la mayor<br />

cantidad de dinero posible <strong>en</strong> monedas de ese valor.<br />

Se advierte, sin embargo, que no siempre es apropiado un algoritmo devorador<br />

para resolver este problema. Por ejemplo, si el sistema de monedas fuera de<br />

1, 7 y 9 pesetas<br />

el cambio de 15 pesetas que ofrece este algoritmo consta de<br />

7 monedas: 1 de 9 y 6 de 1<br />

mi<strong>en</strong>tras que el cambio óptimo requiere tan sólo<br />

3 monedas: 2 de 7 y 1 de 1<br />

El algoritmo pres<strong>en</strong>tado para el cambio de moneda resultará correcto siempre<br />

que se considere un sistema monetario donde los valores de las monedas son cada<br />

uno múltiplo del anterior. Si no se da esta condición, es necesario recurrir a otros<br />

esquemas algorítmicos (véase el apartado 20.3.3).<br />

La <strong>en</strong>señanza que extraemos del ejemplo es la sigui<strong>en</strong>te: g<strong>en</strong>eralm<strong>en</strong>te el<br />

desarrollo de esta clase de algoritmos no pres<strong>en</strong>ta dificultades, pero es complicado<br />

asegurarse de que esta técnica es apropiada para el problema planteado. Por otra<br />

parte, hay que señalar que este esquema se aplica con frecu<strong>en</strong>cia <strong>en</strong> la resolución<br />

de problemas a sabi<strong>en</strong>das de que la solución proporcionada no es la óptima, sino<br />

sólo relativam<strong>en</strong>te bu<strong>en</strong>a. Esta elección se debe a la rapidez de la resolución,<br />

circunstancia que muchas veces hace que no merezca la p<strong>en</strong>a buscar una solución<br />

mejor.<br />

1 Para simplificar, supondremos que se dispone de cuantas monedas se necesite de cada valor.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!