Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Recur Sivas
Recur Sivas
y productoria
n
i=0
a
i
b) P
n
= a
0
.a
1
. . . . .a
n
=
n
i=0
a
i
7. Sea =
1+
5
2
y =
1
5
2
; demuestre por induccion que el n-esimo termino de la
sucesion de Fibonacci cumple:
f
n
=
1
5
(
n
n
)
8. Sea A =
1 1
1 0
n
i=0
x
i
e) a
n
=
n
i=0
x
i
i!
f ) a
n
= xn(n 1)/2
Aritmetica recursiva
El poder de la recursividad esta basado en que sabiendo contar, es decir sabiendo sumar 1,
podemos realizar los algoritmos mas comunes de la aritmetica: desde decidir de dos n umeros
cual es mayor, sumar, restar, multiplicar, hallar cociente y residuo, maximo com un divisor,
hasta decidir si un n umero es primo.
Ejemplo 2. La siguiente es la denicion recursiva de suma de dos numeros naturales, a
partir de sumar 1.
a
0
= a
a
n+1
= a
n
+ 1
entonces a
n
= a + n.
Notese que aplicamos la logica de sumar con los dedos de la mano. Realmente tenemos una
denicion recursiva de la suma de dos n umeros naturales, basada unicamente en saber sumar
1. Utilizando condicionales podemos denir recursivamente el producto solamente sumando
1, pero como ya sabemos sumar dos n umeros naturales cualesquiera entonces, es sensato
utilizar tal suma (como si fuera una subrutina).
Ejemplo 3. Denicion recursiva de producto de dos n umeros naturales a partir de la suma
a
0
= 0
a
n+1
= a
n
+ c
entonces a
n
= cn.
Estas dos deniciones las podemos traducir en algoritmos.
Ejemplo 4. Algoritmo SUMA(a,b)
Si b=0 entonces SUMA(a,b)=a
si b=0 entonces SUMA(a,b)=SUMA(a,b-1)+1
FIN
9
Ejemplo 5. Algoritmo PRODUCTO(a,b)
Si b=0 entonces PRODUCTO(a,b)=0
Si b=0 PRODUCTO(a,b)=PRODUCTO(a,b-1)+a
FIN
Ejemplo 6. Algoritmo COCIENTE(a,b) Si b>a entonces COCIENTE(a,b)=0
Si ba COCIENTE(a,b)=COCIENTE(a-b,b)+1
FIN
Ejemplo 7. El algoritmo para el Cociente lo podemos traducir como denicion recursiva
a
0
= a; c
0
= 0
Si a
n
< b entonces c
n+1
= c
n
Si a
n
b
n
entonces a
n+1
= a
n
b; c
n+1
= c
n
+ 1
el cociente al dividir a entre b se obtiene como c
n
cuando a
n
< b
Denici on 1. Dados dos n umeros naturales a y b se dice que a divide a b si existe un
natural k tal que b = ak. Se nota a|b.
Denici on 2. El maximo com un divisor de dos naturales a y b es un n umero c tal que
i) c|a y c|b
ii) Si n|a y n|b entonces n|c.
se nota c = MCD(a, b)
En primaria se aprende a hallar el maximo com un divisor de dos n umeros, generalmente
descomponiendo los n umeros en sus factores primos, este algoritmo es practico para n ume-
ros muy peque nos, para n umeros grandes descomponer en factores primos es un problema
que puede requerir mucho tiempo y por lo tanto este algoritmo no es practico. Existe una
algoritmo muy antiguo llamado el algoritmo de Euclides que emplea sucesiones sucesivas
(averiguar) y que se basa en el siguiente hecho:
Proposici on 1. Siendo a > b se tiene que MCD(a, b) = MCD(a b, b).
Demostracion. Sea c = MCD(a, b) y d = MCD(a b, b). Como c|a y c|b entonces c|a b
por tanto c es un divisor com un de a b y b y tenemos que c|d. Similarmente se ve que d|c.
Entonces c|d y d|c por tanto c = d
Ejercicios
1. Expresar algoritmos (en seudocodigo o en su lenguaje preferido) para que solamente
sabiendo sumar 1 y distinguiendo cuando dos n umeros son iguales:
a) Determinar cual de dos n umeros es mayor (si no son iguales)
b) Hallar la diferencia entre dos n umeros.
c) Duplicar un n umero.
10
d) Hallar el residuo y el cociente al dividir entre dos.
2. Expresar algoritmos (en seudocodigo o en su lenguaje preferido) para que solamente
sabiendo sumar y restar dos naturales y decidir cual es el mayor:
a) Halle el residuo al dividir a entre b.
b) Decidir si a divide a b.
c) Elevar al cuadrado un n umero.
d) Hallar el maximo com un divisor entre dos n umeros.
3. Expresar algoritmos (en seudocodigo o en su lenguaje preferido) para que solamente
sabiendo sumar y restar y multiplicar dos naturales y decidir cual es el mayor:
a) Decida si un n umero es primo.
b) Expresar un n umero por sus factores primos.
c) Calcular los coecientes binomiales.
d) Hallar el maximo com un divisor entre dos n umeros.
e) Expresar a en base b.
4. Sea S
n
una sucesion denida recursivamente as:
i) Base: S
0
= 1
ii) Paso recursivo: S
n+1
= S
n
+
1
2
, para todo natural n > 0.
Encuentre el valor de S
100
. Muestre una formula no recursiva para hallar S
n
.
5. Multiplicacion campesina: Para multiplicar dos n umeros (de manera relativamente
agil) no es necesario saber las tablas de multiplicar, basta con saber duplicar un n umero
cualquiera y saber dividir entre 2. Se colocan los dos n umeros uno al lado del otro y
mientras uno se va dividiendo por dos el otro se va multiplicando por dos. Las divisiones
se hacen, naturalmente enteras y los n umeros no pares de esta columna se distinguen
digamos con un . El proceso termina cuando en la columna de los n umeros que se
van dividiendo se encuentre 1. El resultado del producto se encuentra sumando los
n umeros correspondientes a en la columna de los n umeros que se van multiplicando
por 2. Vemos este proceso cuando se trata de multiplicar 312 por 45.
312 45
624 22
1248 11
2496 5
4992 2
9984 1
entonces 312 45 = 312 + 1248 + 2496 + 9984 = 14040.
a) Multiplique 19 por 168 por este metodo.
11
b) Observe la siguiente denicion recursiva:
a
0
= a; b
0
= b; s
0
= 0
a
n+1
= 2a
n
; b
n+1
= COC(b
n
, 2); s
n+1
= s
n
+ RES(b
n
, 2)a
n
Explique por que este proceso recursivo representa realmente el algoritmo cam-
pesino para multiplicar a y b.
c) Demuestre por induccion que en la anterior recursion se tiene a
n
b
n
ab = s
n
.
Recursi on en las palabras
Dado un conjunto nito (denominado alfabeto) se construye un el conjunto
de las pala-
bras con letras en , conjunto de gran interes en la informatica. Intuitivamente, una palabra
es una sucesion nita de letras, no nos interesa para nada por ahora, que tengan sentido. As,
si = {a, b} entonces las palabras con tres letras son exactamente aaa, aab, aba, abb, baa, bab, bba, bbb.
Hay muchas formas de denir formalmente el conjunto de palabras, utilizaremos (por variar)
un manera recursiva. Para ello, tendremos en cuenta dos cosas: la palabra mas peque na que
se puede hacer sobre cualquier alfabeto es la palabra sin letras que notamos ; por otra parte
suponemos que sabemos agregar una letra a la derecha de una palabra dada. siendo as:
Denici on 3. Siendo cualquier conjunto nito se dene
recursivamente as:
Base:
Paso Recursivo: Si w
y x entonces wx
.
Para cualquier = se tiene que
= {, a, b, aa, ab, ba, . . .}. La denicion recursiva es muy util para formalizar conceptos al-
rededor de las palabras palabras y hacer demostraciones. La operacion mas importante entre
palabras es la concatenacion,que intuitivamente signica pegar palabras y que denimos
a continuacion.
Denici on 4. Se dene en
entonces v
Paso Recursivo: Si v, w
, x recursivamente as:
i) Base: |w|
x
= 0
ii) Paso recursivo: |wy|
x
= |w|
x
, si y = x y |wy|
x
= |w|
x
+ 1, si y = x.
Intuitivamente que es |w|
x
?
4. Demostrar que la concatenacion entre palabras es asociativa.
12
5. Sea = {a, b}, para v, w