You are on page 1of 2

Estructuras de datos

Recursividad: multiplicacin por duplicacin


Fecha lmite de entrega: Viernes 26 de septiembre de 2014.

Objetivo de la prctica
Analizar, disear e implementar funciones de clculo recursivo.
Introduccin
En la programacin, la recursividad es la caracterstica que tiene un sistema de estar estructuralmente sujeto a reglas o
pautas recurrentes, es decir que sus trminos pueden conocerse a partir de los precedentes, en donde se encuentra
implcita la idea del orden en sus elementos. En esta prctica se plantea el diseo y escritura de funciones recursivas
para el clculo matemtico.
El problema de la multiplicacin de enteros positivos
{
} el conjunto de los nmeros enteros positivos (o simplemente enteros). El Problema de la MultipliSea
cacin de Enteros Positivos (PMEP) es una operacin que se denota
(o simplemente
) y consiste en transformar a los enteros y en otro entero de tal manera que
. Esta operacin se define de la siguiente manera:

As, por ejemplo:


de enteros y .

. El dominio de este problema es el conjunto de todos los pares

El algoritmo de multiplicacin por duplicacin


Sean y dos enteros. Conocido tambin como algoritmo de multiplicacin ruso, consiste en lo siguiente. Cada par
de enteros se asociar con un valor entero llamado la reserva de y :
1.
2.
3.
4.
5.

Si es impar entonces reserve , de lo contrario reserve 0.


Divida a entre (divisin entera).
Duplique el valor de .
Si
entonces vuelva al paso 1. De lo contrario, contine.
Sume todos los valores que fueron reservados y proporcione este valor como el resultado de la operacin.
Por ejemplo sean

. Entonces:

reserva
Inicio del procesamiento

Paso 1:
Paso 2:
Paso 3:
Paso 4:
Paso 5:
Paso 6:
Paso 7:

Fin del procesamiento


Suma de las reservas

As,

MC Alejandro Aguilar Cornejo

Apreciacin recursiva del algoritmo de multiplicacin por duplicacin


Observe que cada paso del clculo de la solucin de
consiste en un ejemplar nuevo del PMEP. Por ejemplo, en
el paso 3 se plantea el clculo de
y en el paso 5 el de
. Particularmente en el paso 1 se plantea el
clculo de
, cuya solucin se da en funcin de la solucin de todos los planteamientos posteriores de la siguiente manera:
se plantea como la suma de su reserva ( ) ms la solucin de
(planteamiento del
siguiente paso). A su vez, la solucin de
se plantea como la suma de su reserva ( ) ms la solucin de
, etc. Generalizando, la solucin del paso se define como la suma de su reserva ms la solucin del paso
.
Observe que si
entonces la reserva ser igual a (lo cual es la solucin de
) y en lo sucesivo
valdr siempre , haciendo que la reserva sea tambin, infinitamente y por definicin, igual a . Por ello, la solucin del
planteamiento del algoritmo cuando
puede definirse como y poner fin al clculo, ya que
.
As, si
se asume el final del procedimiento antes de calcular la suma de reservas.
Requerimiento
Deber disear e implementar una funcin recursiva para calcular la multiplicacin de dos enteros positivos, siguiendo
la estrategia del algoritmo de duplicacin.
Deber elaborar un reporte de prctica en donde:
1.
2.
3.

Especifique la definicin formal de la funcin recursiva que dise.


Indique claramente cul es la base de la recursin y cul es el paso inductivo.
Incluya la implementacin (el cdigo) de su funcin recursiva.

No elabore una pgina de presentacin para su reporte. En lugar de ello, elabore un membrete en el cual
identifique su trabajo. El reporte de prctica deber entregarse impreso a ms tardar en la fecha lmite que se seala al
inicio del documento. Para la entrega de sus programas:
1.
2.

3.

Deber comprimir sus archivos de cdigo en un archivo .ZIP, .RAR o .7z, el cual deber llevar su nombre con el
formato nombre.apellido.extensin. Por ejemplo abelardo.gomez.zip.
Para construir su archivo comprimido, agregue nicamente su cdigo fuente (archivos con extensin .cpp o
.h) y en su caso el archivo de proyecto (archivos con extensin .cbp, en el caso de codeBlocks). No agregue
cdigo objeto (.o, .obj) ni archivos ejecutables (.exe).
Enve su archivo comprimido a la direccin aaguilar.itszapopan@gmail.com a ms tardar en la fecha lmite de
entrega con el asunto (subject) Recursividad 14 II.

MC Alejandro Aguilar Cornejo

You might also like