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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

470 Capítulo 20. Esquemas algorítmicos fundam<strong>en</strong>tales<br />

Entonces, la aplicación repetida de esa función<br />

function RepTest(n, k: integer): boolean;<br />

var<br />

i: integer;<br />

pr: boolean;<br />

begin<br />

pr:= False;<br />

i:= 0;<br />

repeat<br />

i:= i + 1;<br />

pr:= Test(n)<br />

until pr or (i = k);<br />

RepTest:= pr<br />

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

se comporta así: aplicada a un primo, resulta ser siempre True, y aplicada a un<br />

número compuesto lo descubre con una probabilidad 1 − q k . La probabilidad de<br />

error cuando el resultado es True, q k , puede disminuirse tanto como se quiera a<br />

costa de aum<strong>en</strong>tar el número de aplicaciones de la función test.<br />

20.6 Ejercicios<br />

1. Desarrollar completam<strong>en</strong>te el programa para descomponer un <strong>en</strong>tero positivo <strong>en</strong><br />

sus factores primos descrito <strong>en</strong> el apartado 20.1.1, escribi<strong>en</strong>do finalm<strong>en</strong>te la solución<br />

<strong>en</strong> la sigui<strong>en</strong>te forma:<br />

600 2<br />

300 2<br />

150 2<br />

75 3<br />

25 5<br />

5 5<br />

1<br />

2. Escribir el algoritmo de cambio de moneda descrito <strong>en</strong> apartado 20.1.2 ajustándose<br />

al esquema devorador g<strong>en</strong>eral.<br />

3. Desarrolle completam<strong>en</strong>te un procedimi<strong>en</strong>to devorador para el problema de la<br />

mochila descrito <strong>en</strong> el apartado 20.1.3.<br />

4. Desarrolle completam<strong>en</strong>te un procedimi<strong>en</strong>to devorador para el algoritmo de Prim<br />

del árbol de recubrimi<strong>en</strong>to mínimo. Téngase <strong>en</strong> cu<strong>en</strong>ta la observación hecha al<br />

final del apartado 20.1.3 que nos permite simplificar la condición de terminación<br />

del bucle.<br />

5. Se ti<strong>en</strong><strong>en</strong> dos listas A y B ord<strong>en</strong>adas. Escribir un algoritmo devorador que las<br />

mezcle produci<strong>en</strong>do una lista C ord<strong>en</strong>ada.

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

Saved successfully!

Ooh no, something went wrong!