Académique Documents
Professionnel Documents
Culture Documents
Taller de Algebra I
n
Y
n! = k
k=1
Recursion
n
(
Y 1 si n = 0
n! = k, n! =
n (n 1)! si no
k=1
Recursion
n
(
Y 1 si n = 0
n! = k, n! =
n (n 1)! si no
k=1
La segunda definicion de factorial involucra a esta misma funcion del lado derecho!
Recursion
n
(
Y 1 si n = 0
n! = k, n! =
n (n 1)! si no
k=1
La segunda definicion de factorial involucra a esta misma funcion del lado derecho!
n
(
Y 1 si n = 0
n! = k, n! =
n (n 1)! si no
k=1
La segunda definicion de factorial involucra a esta misma funcion del lado derecho!
n
(
Y 1 si n = 0
n! = k, n! =
n (n 1)! si no
k=1
La segunda definicion de factorial involucra a esta misma funcion del lado derecho!
Ejercicios
1 Implementar la funcion fib :: Integer -> Integer que devuelve el i-esimo numero de
Fibonacci. Recordar que la secuencia de Fibonacci se define como:
1
si n = 0
fib(n) = 1 si n = 1
fib(n 1) + fib(n 2) en otro caso
Implementacion de sumatorias
Como podemosPimplementar la funcion sumatoria :: Integer -> Integer, donde
sumatoria(n) = ni=1 i
Sumatorias
Implementacion de sumatorias
Como podemosP implementar la funcion sumatoria :: Integer -> Integer, donde
sumatoria(n) = ni=1 i
Para resolver este tipo de ejercicios, se puede pensar a las sumatorias como
n
X n1
X
sumatoria(n) = i =n+ i para n > 1
i=1 i=1
Sumatorias
Implementacion de sumatorias
Como podemosP implementar la funcion sumatoria :: Integer -> Integer, donde
sumatoria(n) = ni=1 i
Para resolver este tipo de ejercicios, se puede pensar a las sumatorias como
n
X n1
X
sumatoria(n) = i =n+ i para n > 1
i=1 i=1
Es decir:
sumatoria(n) = n + sumatoria(n 1) para n > 1
Sumatorias
Implementacion de sumatorias
Como podemosP implementar la funcion sumatoria :: Integer -> Integer, donde
sumatoria(n) = ni=1 i
Para resolver este tipo de ejercicios, se puede pensar a las sumatorias como
n
X n1
X
sumatoria(n) = i =n+ i para n > 1
i=1 i=1
Es decir:
sumatoria(n) = n + sumatoria(n 1) para n > 1
A veces el paso recursivo no es obvio o no esta dado explcitamente. Hay que pensar...
Ejercicios
I Implementar la funcion esPar :: Integer -> Bool que determine si un numero natural es
par. No esta permitido utilizar mod ni div .
I Escribir una funcion para determinar si un numero natural es multiplo de 3. No esta
permitido utilizar mod ni div.
I Implementar la funcion sumaImpares :: Integer -> Integer que dado n N sume los
primeros n numeros impares. Ej: sumaImpares 3 1+3+5 9.
I Escribir una funcion doblefact que dado un numero natural par calcula
n!! = n (n 2)(n 4) . . . 2.
Por ejemplo: doblefact 10 10 8 6 4 2 3840.
I Escribir una funcion recursiva que no termine si se la ejecuta con numeros negativos (y en
cambio s termine para el resto de los numeros).
Asegurarse de llegar a un caso base
Como se arregla?
Asegurarse de llegar a un caso base
Como se arregla?