monografia matematicas discretas ver 1.0

71
CARATULA

Upload: prox34

Post on 25-Nov-2015

52 views

Category:

Documents


2 download

TRANSCRIPT

CARATULA

DEDICATORIAINDICE

1. Definicin recursiva- Recurrencia, recursin o recursividad es la forma en la cual se especifica un proceso basado en su propia definicin.- Un problema que pueda ser definido en funcin de su tamao, sea este N, pueda ser dividido en instancias ms pequeas (< N) del mismo problema y se conozca la solucin explcita a las instancias ms simples, lo que se conoce como casos base, se puede aplicar induccin sobre las llamadas ms pequeas y suponer que estas quedan resueltas. - La recursividad es una tcnica de programacin importante. Se utiliza para realizar una llamada a una funcin desde la misma funcin. Como ejemplo til se puede presentar el clculo de nmeros factoriales. l factorial de 0 es, por definicin, 1. Los factoriales de nmeros mayores se calculan mediante la multiplicacin de 1 * 2 *..., incrementando el nmero de 1 en 1 hasta llegar al nmero para el que se est calculando el factorial.- Un algoritmo se llama recursivo si resuelve un problema reducindolo a un caso del mismo problema con cada dato de entrada ms pequeo. La recursividad forma parte del repertorio para resolver problemas en Computacin y es de los mtodos ms poderosos y usados.Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples.

Ejemplo 1. FactorialDefinicin:factorial (n) = n!si n > 0factorial (n) = n*n-1*n-2* ... * 1si n > 0el valor de 0! se define comofactorial (0) = 1Su definicin recursiva es:factorial (n) = 1si n = 0factorial (n) = n* factorial (n-1)si n > 0

as para calcular el factorial de 4:factorial (4) = 4 * factorial (3) = 4 * 6 = 24factorial (3) = 3 * factorial (2) = 3 *2 = 6factorial (2) = 2 * factorial (1) = 2 * 1 = 2factorial (1) = 1 * factorial (0) = 1 * 1 = 1Las definiciones recursivas de funciones en matemticas que tienen como argumentos nmeros enteros, se llaman relaciones de recurrencia.Forma de una ecuacin de recurrencia:

coar +c1ar-1 + c2ar-2 + ....+ ckar-k = f(r) funcin matemtica discreta donde: ci son constantes, es llamada una ecuacin de recurrencia de coeficientes constantes de orden k, condicionada a que c0 y ck = 0.-Una definicin recursiva dice cmo obtener conceptos nuevos empleando el mismo concepto que intenta definir.-El poder de la recursividad es que los procedimientos o conceptos complejos pueden expresarse de una forma simple.-Un razonamiento recursivo tiene dos partes: la base y la regla recursiva de construccin. La base no es recursiva y es el punto tanto de partida como de terminacin de la definicin.Ejemplo:Base: La secuenciacin, iteracin condicional y seleccin son estructuras vlidas de control que pueden ser consideradas como enunciados.Regla recursiva: Las estructuras de control que se pueden formar combinando de manera vlida la secuenciacin iteracin condicional y seleccin tambin son vlidos.Un conjunto de objetos est definido recursivamente siempre que:(B) algunos elementos del conjunto se especifican explcitamente(R) el resto de los elementos del conjunto se definen en trminos de los elementos ya definidos

Donde:(B) se llama base(R) se llama clusula recursiva

Observaciones:1. El procedimiento se llama a si mismo2. El problema se resuelve, resolviendo el mismo problema pero de tamao menor3. La manera en la cual el tamao del problema disminuye asegura que el caso base eventualmente se alcanzar-La recursividad es un mtodo poderoso usado en inteligencia artificial, su poder es que algunos conceptos complejos pueden expresarse en una forma simple. Una definicin recursiva difiere de una definicin circular en que tiene una forma de escapar de su expansin infinita. Este escape se encuentra en la definicin o porcin no recursiva o terminal de la definicin.Las frmulas recursivas pueden aplicarse a situaciones tales como prueba de teoremas, solucin de problemas combinatorios, algunos acertijos, etc.Ejemplos:1. Nmeros de FibonacciLos nmeros de Fibonacci se definen como:

FN = FN-1 + FN-2para N > 2F0 = F1 = 1

que definen la secuencia:1,1,2,3,5,8,13,21,34,55,89,144, .....

Por ejemplo, si quisiramos encontrar Fibonacci de 5, entonces:Fibonacci (5) = Fibonacci (4) + Fibonacci (3)Fibonacci (4) = Fibonacci (3) + Fibonacci (2)Fibonacci (3) = Fibonacci (2) + Fibonacci (1)Fibonacci (2) = Fibonacci (1) + Fibonacci (0)De manera iterativa el algoritmo en seudo cdigo podra ser:esttica int Fibonacci (int n)// versin iterativacomienzafibo [0] 1fibo [1] 1para i 1 hasta nfibo [i] fibo [i-1]+ fibo [i-2]regresa fibo [n]termina

Resolviendo el mismo problema pero de manera recursiva, obtenemos:esttica int Fibonacci (int n)//versin recursivacomienzasi n < 1 entoncesregresa 1otroregresa Fibonacci (n-1) + Fibonacci (n-2)termina

2. Considere la siguiente ecuacin recurrente:

an = an-1 + 2na0 = 1Hacindolo el algoritmo en seudocdigo:esttica int a (int n)comienzasi n = 0 entoncesregresa1otroregresa 2^n + a (n-1)termina

Los valores de los trminos de una sucesin pueden darse de manera explcita mediante frmulas como:

Sn = n4 - 3n3 - 2n

pero tambin pueden definirse por medio de descripciones que involucren otros trminos que les anteceden en la sucesin.por ejemplo:

Hacindolo el algoritmo en seudocdigo:esttica int suma (int i, int n)comienzasi i = n entoncesregresa iotroregresa n + suma (i,n-1)termina

4. Definicin recursiva para elevar un nmero a una potencia: Un nmero elevado a la potencia cero produce la unidad; la potencia de un nmero se obtiene multiplicndolo por s mismo elevando a la potencia menos uno. Por ejemplo:

32 = 3*(31) = 3*(3*30) = 3*(3*1)= 3*(3) = 9Hacindolo el algoritmo en seudocdigo:esttica int potencia (int n, int k) comienzasi k=0 entoncesregresa 1otroregresa n * potencia (n,k-1)termina

5. Nmero de CombinacionesRecursivamente, podemos definir el nmero de combinaciones de m objetos tomados de n, denotado (n,m) para n> 1 y 0 < m < n por:

(n,m) = 1 si m = 0 m = n n = 1(n,m) = (n-1, m) + (n-1,m-1) en otro casoHacindolo el algoritmo en seudocdigo:esttica int combinaciones (int n, int m)comienzasi m = 0 o m = n o n = 1 entoncesregresa 1otroregresa combinaciones (n-1,m) + combinaciones (n-1,m-1)termina

6. Algoritmo de Euclides:Este algoritmo es considerado el ms viejo no trivial.El paso esencial que garantiza la validez del algoritmo consiste en mostrar que el mximo comn divisor (mcd) de a y b, (a > b > 0), es igual a a si b es cero, en otro caso es igual al mcd de b y el remanente de a dividido por b, si b > 0.esttica int mcd (int a,b)comienzasi b = 0regresa aotroregresa mcd (b, a mod b)terminaEjemplos:

mcd (25, 5) = mcd (5,0) = 5mcd (18,6) = mcd (6,0) = 6mcd (57, 23) = mcd (23, 1) = mcd (1,0) = 1mcd (35, 16) = mcd (16,3) = mcd (3, 1) = mcd (1, 0) = 1

Definicin: Cuando una llamada recursiva es la ltima posicin ejecutada del procedimiento se llama recursividad de cola, recursividad de extremo final o recursin de extremo de cola.

Definicin: Cuando un procedimiento incluye una llamada a si mismo se conoce como recursin directa.

Definicin: Cuando un procedimiento llama a otro procedimiento y este causa que el procedimiento original sea invocado, se conoce como recursin indirecta.

Al principio algunas personas se sienten un poco incmodas con la recursividad, tal vez porque da la impresin de ser un ciclo infinito, pero en realidad es menos peligrosa una recursin infinita que un ciclo infinito, ya que una recursividad infinita pronto se queda sin espacio y termina el programa, mientras que la iteracin infinita puede continuar mientras no se termine en forma manual.

Cuando un procedimiento recursivo se llama recursivamente a si mismo varias veces, para cada llamada se crean copias independientes de las variables declaradas en el procedimiento.

Ejercicios:1.- Suponemos que f se define recursivamente como f(0) = 3f(n+1) = 2f(n)+3Obtn f(1), f(2), f(3) y f(4)Solucin: a partir de la definicin recursiva se obtiene que:f(1)=2f(0)+2=2.3+3=9f2=2f(1)+3+2.9+3=21f(3)=2f(2)+3=2.21+=45f(4)=2f(3)+3=2.45+3=93Muchas funciones se pueden estudiar utilizando sus definiciones recursivas. La funcin factorial es un ejemplo de estas funciones.

2.- Da una definicin recursiva de a donde a es el nmero real no nulo y n es un entero no negativoSolucin: la definicin recursiva contiene dos partes. Primero se especifica a0 mediante 20=1. Luego se da una regla para encontrar an+1 a partir de an estos es an+1 = a.an para n = 0,1,2,3 estas dos igualdades definen an de una forma nica para n entero no negativo.

3.- Obtn los nmeros de fabonacci f2, f3, f4, f5 y f6Solucin 1: de la primera parte de la definicin se sabe que f0=0 y f1 = 0. De la segunda se deduce queF2 = f1 +f0 = 1 + 0 =1F3 = f2 + f1 = 1+1 =2F4= f3 + f2 = 2 +1 = 3F5 = f4 +f3 = 3 +2 =5F6 = f5 + f4 = 5 +3 = 8

Solucin 2: Resolviendo este ejercicio usando lenguajes de Programacin mas usados:1)Java :import java.util.Scanner;class Ejercicio{public static int factorial(int n){if(n==0) return 1;else return n*factorial(n-1);}public static void main(String args[]) {Scanner in =new Scanner(System.in);int num;do{System.out.print("Ingrese numero :");num=in.nextInt();}while(num km. Luego, nuestra suposicin de que el principio era falso es incorrecta. Por lo tanto, el Principio del Palomar es cierto. Ahora nos concentraremos en resolver algunos problemas que, a priori, pudieran ser muy difciles de resolver sin esta nueva herramienta que acabamos de introducir. Problema 1. En un estadio hay 10, 000 personas. Demostrar que hay al menos un grupo de 28 personas que est de cumpleaos el mismo da. Solucin. Bastara considerar a las personas del estadio como nuestros objetos y a los das del ao como nuestros casilleros (podemos clasificar a las personas segn su da de cumpleaos). As, tenemos que el nmero de personas es n = 10000 y el nmero de das del ao es k = 366 (consideramos el caso fortuito de que haya personas nacidas en das 29 de febrero). Podemos notar, adems, que 36627 = 9882, entonces 10000 > 27366 (es decir, k = 27), luego, el Principio del Palomar nos asegura que en alguno de los das del ao hay 28 o ms personas de cumpleaos. Problema 2. Sea un cuadrado de diagonal 3 en el que se marcan al azar 10 puntos. Demostrar que siempre podemos encontrar al menos 2 puntos que estn a una distancia no mayor a 1.

Principio del Palomar 3

Solucin.

Nos gustara usar el Principio del Palomar para resolver este problema. Sabemos que se van a marcar 10 puntos al interior del cuadrado; luego, si creamos 9 casilleros que cubran completamente el cuadrado de modo que cada punto deba forzosamente entrar en alguno de los casilleros, el principio del palomar nos asegurara que al menos 2 puntos caeran en el mismo casillero. Luego, para resolver el problema, nos bastara encontrar una forma de crear 9 casilleros con la gracia que si dos puntos caen en el mismo casillero entonces la distancia entre ambos sea menor o igual que 1. Una forma de lograr esto es dividir el cuadrado en 9 cuadrados ms pequeos de la siguiente manera: Y supongamos que los bordes de los cuadrados los asignamos arbitrariamente a alguno de los cuadrados que bordea (por ejemplo, podemos decir que las lneas horizontales pertenecen al cuadrado inmediatamente superior, las verticales pertenecen al cuadrado inmediatamente a la izquierda y los vrtices al cuadrado inmediatamente arriba y a la izquierda). De esta manera, cualquier punto que pongamos en el cuadrado grande pertenecer a uno y slo uno de los cuadrados pequeos. Adems como el cuadrado grande tiene diagonal 3, los cuadrados pequeos tendrn diagonal 1. Luego, la distancia mxima que puede haber entre dos puntos dentro de un mismo cuadrito ser de 1 (la diagonal del cuadrito). As, el Principio del Palomar nos asegura que, al marcar 10 puntos, dos de ellos debern quedar en el mismo cuadrito, y por lo tanto la distancia entre dichos dos puntos ser menor o igual que 1. Notemos que en el problema anterior dividimos un conjunto (el cuadrado) en casilleros que cumplen cierta propiedad. Esa es, en general, la idea cuando nos enfrentamos a problemas de este tipo.