2Eva_IIT2014~T1 Función potencia recursiva

2da Evaluación II Término 2014-2015, Febrero 2015 /FIEC

Tema 1. (25 puntos) Escriba la función recursiva calcularPotenciacion(base,exponente) la cual recibe dos números enteros no negativos como parámetros para calcular y retornar la potenciación de los mismos asumiendo que el primer número es la base y el segundo el exponente.

baseexponente = 24=2.23=2.2.22=2.2.2.2

Nota: No utilizar la función estándar pow (base, exp).

Referencia: 2Eva_IT2005_T2 Calcular potencia recursiva

3Eva_IT2014_T1 Potencia recursiva

3ra Evaluación I Término 2014-2015, Septiembre 16, 2014 /ICM00794

Tema 1 (20 puntos).La operación matemática de la exponenciación entera mostrada, permite la implementación de un algoritmo exponenciación rápida, al realizar menos multiplicaciones si se calcula sólo una vez el término a (b/2).

ab={a(b/2)a(b/2),b>0 y b es paraa(b1),b>0 y b es impar1,b=0 a^b = \begin{cases} a^{(b/2)}*a^{(b/2)}, & b>0 \text{ y b es par}\\ a*a^{(b-1)}, & b>0 \text{ y b es impar} \\ 1, & b=0 \end{cases}

Escriba una función recursiva potencia(a,b), considerando la exponenciación rápida y realice una prueba de escritorio para 34.

Rúbrica: Definir función (5 puntos), desarrollo función (10 puntos), prueba de escritorio (5 puntos)

3Eva_IIT2009_T1 Funciones combinatoria y factorial

3ra Evaluación II Término 2009-2010. Febrero 23, 2010 /ICM00794

Tema 1 (20 puntos) La Combinatoria se define como: combinatoria formula

a. Escriba en una función llamada combinatoria(n,k), la cual retorna el número posible de combinaciones de n objetos tomando k de ellos.

b. Implemente la función factorial(n) en forma recursiva.

c. Realice una prueba de escritorio para combinatoria(5,3).

Rúbrica: Definición de la función (5 puntos), bloque de procedimiento (7 puntos), función recursiva (5 puntos), prueba de escritorio (3 puntos)

3Eva_IT2008_T1 Número catalán recursivo

3ra Evaluación I Término 2008-2009. Septiembre 16, 2008 /ICM00794

Tema 1 (25 puntos). El n-ésimo número Catalán (en hojor a Eugene Catalán) se obtiene con las fórmulas:

a) Realice la función catalan1(n) resuelta con factoriales, la cual retornará el n-ésimo número Catalán.

Número Catalán: 1, 1, 2, 5, 14, 42, …

b) Elabore la función recursiva catalan2(n), la cuál retornará el n-ésimo número de Catalán.

c) Escriba un programa principal que genere un número aleatorio entre 1 y 10 para generar el respectivo número de Catalán con la llamada a las dos funciones y verifique el resultado entre ambos casos.

Rúbrica: Literal a (10 puntos), literal b(10 puntos), literal c (5puntos)

3Eva_IT2006_T1 Ackerman recursiva

3ra Evaluación I Término 2006-2007, Septiembre 12, 2006 /ICM00794

Tema 1. (20puntos) Debido a su definición, profundamente recursiva, la función de Ackermann se utiliza con frecuencia para comparar compiladores en cuanto a su habilidad para optimizar la recursión. Dicha función se define a continuación:

Ackerman ecuacion

a) Realice una función ackerman(m, n) en matlab, que encuentre el resultado de Ackerman para n y m dados.

b) Realice la prueba de escritorio para ackerman(1, 2).

3Eva_IT2004_T3 Multiplicar con campesino egipcio

Mejoramiento I Término 2004 – 2005. Agosto 31, 2004 /ICM00794

Tema3. Para efectuar la multiplicación entre 2 números enteros p y q, se puede utilizar un método recursivo denominado el Campesino Egipcio:

mult(p,q)={0,q=0p,q=1mult(2p,cociente(q2)),q2, q es parmult(2p,cociente(q2))+p,q2, q es impar  mult(p,q) = \begin {cases} 0 , && q=0 \\ p ,&& q=1 \\ mult \Big(2p,cociente\big(\frac{q}{2}\big)\Big) , && q\ge 2 \text {, q es par} \\ mult \Big(2p,cociente\big(\frac{q}{2}\big)\Big)+p , && q\ge 2 \text{, q es impar }\end{cases}

a) Escriba la función recursiva mult(p,q) en C/C++ que reciba dos argumentos enteros p y q, y devuelva el resultado de su multiplicación.

b) Escriba un programa en C/C++ que, pida al usuario un número entre 0 y 12 y muestre la tabla de multiplicar de dicho número, utilizando la función anterior.

Rúbrica: función recursiva (8 puntos), validar número para tabla (4 puntos), tabla de multiplicar con función recursiva (4 puntos), salida ordenada (4 puntos)


Referencia:  Matemática egipcia. https://es.wikipedia.org/wiki/Matem%C3%A1tica_egipcia

Multiplicación por duplicación. https://es.wikipedia.org/wiki/Multiplicaci%C3%B3n_por_duplicaci%C3%B3n

3Eva_IIIT2003_T3 Sumatoria en forma recursiva

Mejoramiento III Término 2003 – 2004. Abril, 2004 /ICM00794

Tema 3. Escriba una función RECURSIVA, denominada SumaElem(), que reciba como parámetros un arreglo de enteros y su dimensión, luego procese y devuelva la suma de los elementos del arreglo.

Escriba un programa en C/C++ que almacene en un arreglo los 100 primeros números naturales, que llame a función SumaElem() para calcular la suma de dichos números y que muestre el resultado por pantalla.

2Eva_IIT2012_T1 Recursiva Multi

2da Evaluación II Término 2012-2013, Enero 29, 2013 /ICM00794

Tema 1 (20 puntos). La siguiente definición recursiva permite calcular la multiplicación de dos números enteros no negativos.

multi(p,q)={0,q=0p+multi(p,q1),q>0 multi(p,q) = \begin{cases} 0, & q=0\\ p+multi(p,q-1), & q>0\end{cases}
  • Escriba una función recursiva multi(p,q).
  • Desarrolle una prueba de escritorio para multi(3,5)

Rúbrica: literal a (15 puntos), literal b (5 puntos)

2Eva_IIT2011_T1 Algoritmo de Euclides MCD

2da Evaluación II Término 2011-2012, Enero 31, 2012 /ICM00794

Tema 1 (20 puntos). El Algoritmo de Euclides es considerado el más antiguo y no trivial para encontrar el “máximo común divisor” (mcd) entre dos números a y b.
El paso esencial que garantiza la validez del algoritmo consiste en mostrar que el mcd de a y b es:

  • considerar que a > b  y b≥0
  • si b es cero, mcd es igual a a
  • en otro caso, si b>0, es igual al mcd entre b y el residuo de a dividido por b

Realice una función recursiva mcdeuclides(a,b) siguiendo el algoritmo de Euclides, y muestre una prueba de escritorio para a=15 y b=6.

Rúbrica: Definición de función (5 puntos), Recursividad (10 puntos), Prueba de escritorio (5puntos).


Prueba de escritorio:

>>> mcd_euclides(15,6)
a:  15 b:  6 residuo: 3
a:  6 b:  3 residuo: 0
3
>>> mcd_euclides(72,16)
a:  72 b:  16 residuo: 8
a:  16 b:  8 residuo: 0
8
>>>

2Eva_IIT2007_T4 Fibonacci recursiva

2da Evaluación II Término 2007-2008. Febrero 12, 2008 /ICM00794

Tema 4. (20 puntos) Escriba una función recursiva que permita calcular la el término i de la secuencia de Fibonacci.

fibo(i)={1,i=11,i=2fibo(i1)+fibo(i2),i>2 fibo(i)= \begin{cases} 1,& i=1\\1,& i=2 \\fibo(i-1)+fibo(i-2), & i>2 \end{cases}

Elabore un programa que usando fibo(i) indique cuántos términos son necesarios para que su acumulado sea mayor que un valor m dado.