ÁLGEBRA: MATEMÁTICA DISCRETA Parte 1ª: Combinatoria y Recurrencia Profesor: José-Miguel Pacheco Castelao Curso 2011-2012 ESCUELA DE INGENIERÍA INFORMÁTICA DE LA ULPGC 1 Combinatoria Elemental (1) La Combinatoria es la parte de las Matemáticas cuyo objetivo es establecer modos y fórmulas para contar diversas clases de objetos y grupos de ellos, seleccionados de entre un conjunto finito. Partimos, pues, de un conjunto A formado por n elementos, todos ellos diferentes. Una primera pregunta combinatoria es: ¿De cuántas maneras pueden elegirse k elementos distintos entre los n disponibles? Para empezar, supondremos que k<n , y como ejemplo, pongamos k=2. Podemos seleccionar un primer elemento de A de n maneras, pues A tiene n elementos. Una vez elegido éste, como el segundo ha de ser diferente de él, quedarán n-1 posibilidades para él. Por tanto el número posible de parejas será n(n-1), como puede verse construyendo una tabla de doble entrada. Hemos utilizado, sin definirlo, el llamado principio fundamental de la Combinatoria: Si un objeto a se puede elegir de p modos y otro b de q maneras, el número posible de pares (a,b) es pq. 2 Elemento nº 1 2 3 … k-1 k Posibilidades: n n-1 n-2 … (n-k+2) (n-k+1) Nº objetos por grupo 1 2 3 … k-1 k Nº de grupos n n(n-1) n(n-1)(n-2) … n(n-1)…(n-k+2) n(n-1)…(n-k+1) Construcción y recuento de las Variaciones sin elementos repetidos Una Variación es un grupo formado por k elementos distintos, seleccionados entre los n disponibles. Dos variaciones de k elementos se diferencian entre sí, bien por los objetos que las componen, bien por el orden en que aparecen los componentes. El número de variaciones se obtiene a partir de la tabla y resulta ser: Vkn = n(n − 1)(n − 2)...(n − (k − 1)) = = n(n − 1)(n − 2)...(n − k + 1) 3 Elemento nº 1 2 3 … k-1 k Posibles: n n n … n n Nº objetos por grupo 1 2 3 … k-1 k Nº de grupos n nxn nxnxn … nxnx…xn (k-1 veces) nxnx…xn (k veces) Construcción y recuento de las Variaciones si se permite que los elementos se repitan En este caso la tabla se modifica según se ve más arriba, pues una vez elegido un objeto, éste se devuelve al conjunto A y puede volver a ser seleccionado. Ahora se puede trabajar también con k>n. Los grupos así formados se llamarán variaciones con repetición, y su número será: VRkn = n × n × n.... × n = n k 4 Construcción y recuento de las Variaciones sin repetición cuando n=k. De acuerdo con la definición de las Variaciones sin repetición, cuando n=k dos variaciones sólo se diferencian en el orden de aparición de sus elementos. Los grupos así formados se llamarán Permutaciones de los n elementos, y su número será: Vnn = n × (n − 1) × (n − 2).... × 2 × 1 = n ! n n! 0 1 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 … … o bien, cambiando la notación, Vnn = Pn = n ! La expresión n! se lee factorial de n. Las factoriales crecen con gran rapidez, según se ve en la tabla adjunta. Es necesario definir la factorial de 0 como 1 para que los desarrollos posteriores tengan sentido… 5 Construcción y recuento de las Combinaciones (sin repetición) Una combinación es simplemente un grupo de k elementos distintos seleccionados entre los n disponibles. Dos combinaciones de k elementos se diferencian entre sí sólo por los objetos que las componen, pero no por el orden en que aparecen. Dada una combinación cualquiera de k elementos, habrá k! variaciones con esos mismos elementos, porque las posibles permutaciones –que no cambian la combinación– son k!, luego el número de combinaciones es: n V n(n − 1)(n − 2)...(n − k + 1) Ckn = k = = Pk k! [n(n − 1)(n − 2)...(n − k + 1)] × (n − k )! = = k !× (n − k )! n! = k !(n − k )! 6 Notaciones, definiciones, y la ley de simetría El número de las combinaciones se suele escribir abreviadamente así: ⎛n⎞ n! C = =⎜ ⎟ k !(n − k )! ⎝ k ⎠ n k Estos números se llaman números combinatorios o coeficientes binómicos, y se leen: n sobre k. De la construcción de los números combinatorios se deduce inmediatamente la siguiente Ley de Simetría, que permite ahorrar la mitad de los cálculos: ⎛n⎞ ⎛ n ⎞ n! n! n =⎜ ⎟=⎜ = = C = C n−k ⎟ k !(n − k )! ⎝ k ⎠ ⎝ n − k ⎠ (n − k )!k ! n k 7 Algunas observaciones sobre números combinatorios Si hacemos k=0, la fórmula de las combinaciones será n! ⎛ n ⎞ C = = ⎜ ⎟ =1 0!n ! ⎝ 0 ⎠ n 0 Véase que hemos necesitado usar la convención sobre la factorial de 0, esto es, 0!=1. Sin ella sería imposible calcular el cociente que define el número combinatorio. Dicho de otra manera, cuando k=0 estamos construyendo grupos con cero elementos: Sólo hay un modo de conseguirlo, que es… ¡no elegir nada! 8 Leyes de Recurrencia (1) Al construir las factoriales se puede observar que la factorial de un número se obtiene multiplicando dicho número por la del número anterior. En efecto: n ! = n × (n − 1) × (n − 2)... × 2 × 1 = = n × [ n − 1) × (n − 2)... × 2 × 1] = = n × [(n − 1)!] Este es un caso de Ley de Recurrencia. Vamos a definir estas Leyes de modo más preciso: Supongamos que para cada número entero n existe una fórmula que denominaremos F(n). Dicha familia de fórmulas se llama recurrente cuando es posible obtener la n-sima fórmula a partir de un número fijo de las anteriores mediante una regla (la ley de recurrencia), siempre la misma, realizable mediante un número finito de operaciones. En los casos más simples, la recurrencia se plantea entre la fórmula n-sima y su inmediata anterior F (n) = R[ F (n − 1), F (n − 2),..., F (n − r )] Caso más simple: F (n) = R[ F (n − 1)] 9 Por ejemplo, el caso de las factoriales se puede enmarcar en esta teoría en la forma F (n) = n ! = n × (n − 1)! = n × F (n − 1) = R[ F (n − 1)] Vemos que podemos ir descendiendo desde F(n) hasta la última posible, que sería F(1) ó F(0), según qué problema estemos manejando. Estos valores iniciales son los únicos necesarios para calcular todos los demás. Por tanto, una ley de recurrencia necesita especificar la regla de formación y los datos iniciales: F (n) = R[ F (n − 1)] F (1) = F1 (ó F (0) = F0 ) Por ejemplo, el conjunto de todas las factoriales de los números naturales constituye la solución del problema de recurrencia F (n) = nF (n − 1) F (0) = 1 10 La Ley de Recurrencia básica de la Combinatoria En las Matemáticas Discretas, y en particular en la Combinatoria, hay gran abundancia de leyes recurrentes. La mayor parte de ellas usan recurrencia sobre más de una variable. Vamos a ilustrarlo con el caso conocido como Triángulo Combinatorio o Triángulo de Pascal: ⎛ n + 1⎞ ⎛ n ⎞ ⎛ n ⎞ ⎜ ⎟ = ⎜ ⎟+⎜ ⎟ k 1 k k 1 + + ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ Esta fórmula es un caso particular de una ley de doble recurrencia del tipo: F ( n + 1, k + 1) = R [ F ( n , k ), F ( n , k + 1)] En estos casos, las condiciones suplementarias consisten en especificar los valores: F (0, k ) = F0 k , F ( n , 0) = Fn 0 , F (0, 0) = F00 A continuación construiremos una tabla para describir esta recurrencia. 11 ⎛ n + 1⎞ ⎛ n ⎞ ⎛ n ⎞ ⎜ ⎟ = ⎜ ⎟+⎜ ⎟ k 1 k k 1 + + ⎝ ⎠ ⎝ ⎠ ⎝ ⎠ El Triángulo Combinatorio k 0 1 0 1 dato inicial 1 1 1 2 1 2 1 3 4 5 1 1 1 3 4 5 3 6 10 1 4 10 1 5 1 6 7 8 1 1 1 6 7 8 15 21 28 20 35 56 15 35 70 6 21 56 n 2 3 4 5 éste más éste 6 … 1 7 28 1 8 dan éste 12 Algo sobre el triángulo de Pascal: Justificación del nombre de “coeficientes binómicos” para los números combinatorios ⎛n⎞ n Triángulo de Pascal, ⎜ ⎟ ⎝k ⎠ nk 0 1 2 3 4 5 6 … 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1 6 1 6 15 20 15 6 1 7 1 7 21 35 35 21 7 8 1 8 28 56 70 56 28 … 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 5 … … … … 6 7 1 8 1 … … … … Coeficientes del desarrollo de las sucesivas potencias de (a + b) n 13 Conjetura sobre los coeficientes del desarrollo de las potencias de un binomio. Observando detenidamente los cuadros anteriores resulta razonable preguntarse si los coeficientes del desarrollo de las potencias del binomio a+b coincidirán siempre con los correspondientes números combinatorios cuyo elemento superior es igual a la potencia con que se trabaje. En otras palabras, se intuye o conjetura que: ⎛ n ⎞ n−k k n = + a b a b ( ) ∑ ⎜ ⎟ k =0 ⎝ k ⎠ n Para asegurar que la conjetura es cierta –con lo que ya se transforma en un Teorema– necesitamos una Demostración por Inducción. La inducción es el proceso mental por el cual se obtiene conocimiento general a partir del conocimiento de casos particulares. En Matemáticas la inducción se plantea en la siguiente forma: Si se tiene una familia de fórmulas f(n), para n=0,1,2,3…, de las que se sabe que son válidas las primeras ¿cómo podemos asegurarnos de que todas son válidas? Las primeras fórmulas son los casos particulares, y el núcleo del proceso de demostración consiste en establecer con claridad que se puede pasar de la fórmula f(n) a la siguiente f(n+1). 14 Demostración por Inducción y sus tres pasos. Este tipo de demostración nos dice que la fórmula f(n) es válida para todos los valores de n si se cumple que: • Se puede comprobar que los primeros casos de la fórmula f(n) son válidos, y que • tras suponer que hasta un cierto valor de n es cierto lo que se afirma, • es posible construir la fórmula f(n+1) a partir de la f(n). Veámoslo para los coeficientes binómicos: ⎛ n ⎞ n−k k Sea cierto que hasta el número n es f (n) = (a + b) = ∑ ⎜ ⎟ a b k =0 ⎝ k ⎠ Poniendo (a + b) n +1 = (a + b)(a + b) n = n n n ⎛ n ⎞ n−k k ⎛ n ⎞ n − k +1 k n ⎛ n ⎞ n − k k +1 = ( a + b)∑ ⎜ ⎟ a b = ∑ ⎜ ⎟ a b + ∑⎜ ⎟ a b = k =0 ⎝ k ⎠ k =0 ⎝ k ⎠ k =0 ⎝ k ⎠ n +1 n + 1 ⎛ ⎞ ( n +1) − k k = ∑⎜ b = (a + b) n +1 = f (n + 1) ⎟a k =0 ⎝ k ⎠ n El paso intermedio, marcado en rojo, se obtiene aplicando la recurrencia del triángulo de Pascal (pista: desarrollar los sumatorios y reordenar los términos) 15 Una consecuencia (Suma por filas en el triángulo de Pascal), y un vistazo a la Teoría de Conjuntos: Pongamos a = b = 1 en la fórmula del binomio, con lo que tendremos que la suma de los números de la n-sima fila del triángulo de Pascal es: ⎛ n ⎞ n−k k n ⎛ n ⎞ n (1 + 1) = ∑ ⎜ ⎟1 1 =∑ ⎜ ⎟ = 2 , o bien k =0 ⎝ k ⎠ k =0 ⎝ k ⎠ ⎛n⎞ ⎛n⎞ ⎛n⎞ n 2 = ⎜ ⎟ + ⎜ ⎟ + ... + ⎜ ⎟ ⎝0⎠ ⎝1⎠ ⎝n⎠ n n Análogamente, si ponemos a =1 y b= -1, se tiene que: n ⎛ n ⎞ n−k ⎛n⎞ k 0 = (1 − 1) = (1 + (−1)) = ∑ ⎜ ⎟1 (−1) =∑ (−1) k ⎜ ⎟, o bien k =0 ⎝ k ⎠ k =0 ⎝k⎠ n ⎛n⎞ ⎛n⎞ ⎛n⎞ ⎛ n ⎞ n⎛ ⎞ + − 0 = ⎜ ⎟ − ⎜ ⎟ + ⎜ ⎟ − ... + (−1) n −1 ⎜ ( 1) ⎟ ⎜ ⎟ ⎝ 0⎠ ⎝ 1⎠ ⎝ 2⎠ ⎝ n − 1⎠ ⎝ n⎠ n n n 16 La fórmulas anteriores tienen algunas consecuencias interesantes. Notemos que el número combinatorio “n sobre k” representa el número de posibles subconjuntos del conjunto original A que tienen k elementos. Por tanto, el número total de subconjuntos se puede calcular observando el desarrollo del binomio con a = b = 1. El número n de elementos de un conjunto finito A se llama "cardinal de A", y se escribe A = n. La familia de todos los subconjuntos de A es otro conjunto que se llama "Partes de A", y denotamos P ( A). La fórmula anterior se puede escribir ahora: P( A) = 2 = 2n A Dado que cada elemento de A es por sí solo un subconjunto de A, hemos probado también que para conjuntos finitos, P ( A) = 2 > A , o sea, que 2n > n. A 17 Trabajando con el triángulo de Pascal: Sumar por columnas… nk 0 1 2 3 4 5 6 … 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1 6 1 6 15 20 15 6 1 7 1 7 21 35 35 21 7 1 8 1 8 28 56 70 56 28 … La suma de los n primeros números, incluidos los ceros del principio, de la columna k-ésima viene dada por la fórmula siguiente, que se demuestra por inducción sobre n: ⎛ m ⎞ ⎛ n + 1⎞ ∑ ⎜ ⎟ =⎜ ⎟ m=0 ⎝ k ⎠ ⎝ k + 1⎠ n 18 Trabajando con el triángulo de Pascal: Sumar por diagonales… nk 0 1 2 3 4 5 6 … 0 1 1 1 1 2 1 2 1 3 1 3 3 1 4 1 4 6 4 1 5 1 5 10 10 5 1 6 1 6 15 20 15 6 1 7 1 7 21 35 35 21 7 1 8 1 8 28 56 70 56 28 … La suma de los n primeros números, de la diagonal m-ésima viene dada por la fórmula siguiente, que se demuestra por inducción sobre n: ⎛ m + k ⎞ ⎛ m + n + 1⎞ ∑ ⎜ ⎟ =⎜ ⎟ k n k =0 ⎝ ⎠ ⎝ ⎠ n 19 Combinatoria Elemental (2) Combinaciones con repetición y la técnica de RENOMBRAR los elementos… Ejemplo ilustrativo para el cálculo del número de Combinaciones con elementos repetidos. Consideremos un conjunto A = {1,2,3,4,5} con 5 elementos, y vamos a construir ordenadamente todas las posibles combinaciones de 3 elementos, permitiendo que haya repeticiones. Para ello formamos la tabla de la izquierda, obteniendo 25 de ellas. Añadiendo las 10 combinaciones ordinarias, aparece el total de 35 posibilidades existentes 111 222 333 444 555 112 223 334 445 113 224 335 455 114 225 344 115 233 355 122 244 133 255 144 155 En general, podemos renumerar los elementos de A según la siguiente regla: 123 234 345 456 567 El elemento i-ésimo seguirá llamándose i si está en primera posición. En caso contrario, se llamará i+j-1, siendo j el puesto que ocupa en la combinación. 124 235 346 457 En el ejemplo, el mayor valor posible para i+j-1 es 5+3-1=7, luego… 127 245 357 vemos que las combinaciones con repetición de 5 objetos tomados de 3 en 3 son las mismas que las de 7 (=5+3-1) sin repetición tomados de 3 en 3 (tabla de la derecha) 125 236 347 467 126 237 356 134 246 145 247 156 167 20 En general, para n objetos y grupos de k, el número de Combinaciones con elementos repetidos vendrá dado por la fórmula: ⎛ n + k − 1⎞ n + k −1 CR = ⎜ ⎟ = Ck ⎝ k ⎠ En particular, volviendo al ejemplo motivador: n k ⎛ 5 + 3 − 1⎞ ⎛7⎞ 5 + 3−1 = ⎜ ⎟ = 35 CR = ⎜ ⎟ = C3 ⎝ 3 ⎠ ⎝ 3⎠ 5 3 Nótese que en el cálculo del número de las Combinaciones con repetición puede ocurrir que k > n, como en las Variaciones con repetición. 21 Permutaciones con elementos repetidos Ejemplo ilustrativo del cálculo del número de Permutaciones con elementos repetidos Supongamos dadas las permutaciones de tres elementos, p. ej. {a,b,c}, que son 3! = 6. Permitamos que uno de ellos se repita, digamos que el primero, dos veces: (a,a,b,c). Ahora tendremos 4 elementos, y 24 permutaciones posibles. Si numeramos las dos a’es como a1 y a2, observamos que las 24 permutaciones son todas diferentes, pero si les quitamos los índices, dos permutaciones como (a1,b,c,a2) y (a2,b,c,a1) se convierten en indistinguibles, pues ambas se escriben igual, (a,b,c,a). Esto es, cada dos permutaciones con las dos a’es intercambiadas se convierten en una sola. Como en todas las permutaciones hay dos a’es, nos quedará que sólo son posibles 24/2 = 24/2! = 12 permutaciones distintas de 4 elementos, siendo dos de ellos iguales. En general, siguiendo este mismo razonamiento obtendremos: Pnn1 ,n2 ,...,nr = n! n1 !n2 !...nr ! Nótese que se ha de cumplir que n = n1 + n2 + ... + nr 22 Una observación sobre el número de permutaciones con elementos repetidos. Consideremos en la fórmula de la permutaciones con repetición que r = 2. En tal caso se tiene que: n n1 , n2 P ⎛n⎞ ⎛ n⎞ n! n! n! n , y como n = n1 + n2 , Pn1 ,n2 = = = = ⎜ ⎟ = ⎜ ⎟. n1 !n2 ! n1 !n2 ! n1 !(n − n1 )! ⎝ n1 ⎠ ⎝ n2 ⎠ ⎛n⎞ Si ponemos n2 = k , observamos que Ckn = ⎜ ⎟ = Pnn− k ,k . Esto permite reescribir ⎝k ⎠ la fórmula del binomio en una forma más simétrica: ( a + b) n = ∑ k = 0,..., n Pnn− k ,k a n − k b k La importancia de esta nueva forma es que pone de relieve el hecho que la construcción de la fórmula del binomio se reduce a saber de cuántas maneras se puede descomponer el número n en suma de otros dos, teniendo en cuenta el orden de los sumandos. Además esto abre la vía a una generalización natural, cambiando binomio por trinomio, cuatrinomio, polinomio,… 23 Un ejemplo ilustrativo: La potencia n-sima de un trinomio. (a + b + c) n = ∑ n1 + n2 + n3 = n Pnn1 ,n2 ,n3 a n1 b n2 c n3 Todos los términos del sumatorio son de grado n, como muestra el hecho de que los exponentes suman n. A cada descomposición ordenada de n en 3 sumandos le corresponde un término del desarrollo. Veamos como ilustración el caso n = 3. Las posibles descomposiciones de 3 en tres sumandos son (no ponemos los +): 300, 030, 003, 201, 210, 102, 120 y 111. Por ejemplo, la descomposición 120 se corresponde 3! 1 2 0 3 con el término P1,2,0 a1b 2 c 0 = a b c = 3ab 2 . 1!0!2! En el caso general, la potencia n-sima de un multinomio, (a1 + a2 + ... + ar )n , será: (a1 + a2 + ... + ar )n = ∑ n1 + n2 +...+ nr = n Pnn1 ,n2 ,...,nr a1n1 a2n2 ....arnr Este ejemplo y su generalización nos indican que un problema combinatorio de gran importancia es el cálculo de las particiones de números y conjuntos. Así pasamos a la Combinatoria avanzada. 24 Combinatoria Avanzada: Particiones, Permutaciones y más Recurrencias Particiones de conjuntos Sea A un conjunto con n elementos. Una partición de A en k partes consiste en distribuir los n elementos en k grupos (o cajas), de manera que ningún grupo quede vacío. Por supuesto, ha de cumplirse que 0<k ≤n Ejemplo: Sea A={a,b,c,d}, esto es, n=4. Si ponemos k=2 tendremos las siguientes siete posibles distribuciones de A en dos partes (véase que el orden no cuenta): a+bcd, b+acd, c+abd, d+abc, ab+cd, ac+bd, ad+bc El número de particiones de n elementos en k grupos es un número de Stirling de segunda clase, que se escribe en la forma siguiente: Número de Stirling de segunda clase: S nk En el ejemplo, S 42 = 7 25 Particiones de números Sea n un número entero. Una partición de n en k partes consiste en escribir n como suma de k sumandos, que pueden aparecer repetidos. En la teoría se suele exigir que ningún sumando sea nulo (aunque en las potencias de polinomios sí que lo admitimos): 0<k ≤n Ejemplo: Sean n = 5 y k = 3. Las posibles particiones son dos: 3+1+1 y 2+2+1, si no tenemos en cuenta el orden de los sumandos. Sin embargo, en las aplicaciones hay que considerar a veces el orden. En ese caso las posibles particiones serían 6: 3+1+1, 1+3+1, 1+1+3, 2+2+1, 2+1+2 y 1+2+2. Podemos dar una definición más refinada: Una partición de n es una familia de k números, {n1 ≥ n2 ≥ ... ≥ nk } , mayores que 0, k tales que ∑ ni = n. (Recordar la fórmula de (a + b + c) n ...) i =1 El número de particiones de n en k sumandos, sin el orden, se escribe: Pnk En el ejemplo, P53 = 2 (5 = 3 + 1 + 1 y 5 = 2 + 2 + 1) El número de particiones de n en k sumandos, contando el orden, se denota por: POnk En el ejemplo, PO53 = 6 (5 = 3 + 1 + 1 = 1 + 3 + 1 = 1 + 1 + 3 y 5 = 2 + 2 + 1...) 26 Algunas observaciones Para hallar POnk a partir de Pnk se razona así: Tomemos una partición no ordenada cualquiera con k elementos. De esos, habrá algunos grupos de elementos iguales. Por tanto, para hallar las particiones ordenadas asociadas a la dada hay que calcular el número de permutaciones con repetición que le corresponden, que dependerá de los elementos repetidos. Sumando después sobre todas las particiones no ordenadas se halla el número de particiones ordenadas. El “Principio del Palomar, (o del Casillero, o del Cajón…)” (Pigeonhole Principle) Este principio es la sencilla observación de que (para particiones de conjuntos) cuando n es mayor que k, al distribuir los n elementos en k grupos, en alguno de éstos hay más de un elemento. Se usa en muchas demostraciones. Vea las hojas de ejercicios. 27 Permutaciones ordinarias y sus ciclos Comenzamos con un ejemplo ilustrativo. Sea n = 3 y construyamos las 3! = 6 permutaciones ordinarias, pero escribiéndolas en forma de matriz de dos filas, donde en la fila superior mantenemos los tres elementos en un orden fijado: ⎛123 ⎞ ⎜ ⎟, ⎝123 ⎠ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎜ ⎟, ⎜ ⎟, ⎜ ⎟, ⎜ ⎟, ⎜ ⎟ ⎝132 ⎠ ⎝ 213 ⎠ ⎝ 231⎠ ⎝ 312 ⎠ ⎝ 321⎠ En rojo se han marcado los “puntos fijos” y en azul los “ciclos” de 2 ó 3 elementos. Así, tendremos que: ⎛123 ⎞ ⎜ ⎟ : En esta permutación todos los puntos son fijos ⎝123 ⎠ ⎛ 123 ⎞ ⎜ ⎟ : Ésta se compone del ciclo 2 → 3 → 2 y un punto fijo 1 32 ⎝ ⎠ ⎛ 123 ⎞ ⎜ ⎟ : Ésta corresponde al ciclo 1 → 2 → 3 → 1 231 ⎝ ⎠ 28 Se observa que cualquier permutación se obtiene mediante una composición de ciclos de diferentes longitudes, que pueden ir desde 1 hasta n (en el ejemplo, n = 3), luego: ⎛123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎛ 123 ⎞ ⎜ ⎟, ⎜ ⎟, ⎜ ⎟, ⎜ ⎟, ⎜ ⎟, ⎜ ⎟ ⎝123 ⎠ ⎝ 132 ⎠ ⎝ 213 ⎠ ⎝ 231⎠ ⎝ 312 ⎠ ⎝ 321⎠ Se pueden escribir también de esta otra manera: (1)(2)(3), (1)(23), (3)(12), (123), (132) y (2)(13) Nótese que lo único que interesa son los ciclos que forman la permutación y que el orden en que se escriben no tiene importancia. Se plantea ahora el problema de contar cuántas permutaciones de n elementos existen que se puedan escribir como combinación de k ciclos. Su número es un número de Stirling de primera clase, y se escribe snk En el ejemplo, s31 = 2, s32 = 3, y s33 = 1 29 Relaciones de recurrencia para los números de Stirling Para los números de segunda clase Sea S nk el número de particiones de un grupo de n elementos en k bloques. Para contarlas, elijamos un elemento fijo a. Pueden pasar dos cosas: 1. a constituye por sí sólo un bloque. 2. a no es un bloque por sí mismo. En el primer caso, retiremos el bloque formado por a. Entonces nos quedarán k − 1 bloques formados con los n − 1 elementos restantes. Se pueden formar S n -1,k -1 de ellos. Al añadir de nuevo el bloque formado por a tendremos ya S n -1,k -1 de las S nk posibles particiones. En el segundo caso, retiremos también el elemento a. Entonces nos quedarán k bloques formados con los n − 1 elementos restantes. Se pueden formar S n -1,k de ellos. Al reponer el el elemento a, que se puede ubicar de k modos distintos en cada permutación, tendremos las restantes kS n -1,k de las S nk posibles particiones. Luego hemos obtenido la ley de recurrencia S nk = S n -1,k −1 + kS n-1,k 30 El Triángulo de Stirling de 2ª clase nk 0 1 2 3 4 5 6 … 0 1 1 0 1 2 0 1 1 3 0 1 3 1 4 0 1 7 6 1 5 0 1 15 25 10 1 6 0 1 31 90 65 25 1 7 0 1 33 201 350 190 31 1 8 0 1 … … … … … … … n-1 n … k-1 k … … … Éste, más éste por dan éste S nk = S n −1,k −1 + kS n −1,k 31 Para los números de primera clase Sea snk el número de permutaciones de n elementos descomponibles en k ciclos. Para contarlas, elijamos un elemento fijo a. Pueden pasar dos cosas: 1. a constituye por sí sólo un ciclo, esto es, es un punto fijo. 2. a no es un ciclo por sí mismo, o sea, no es un punto fijo. En el primer caso, retiremos el punto fijo a. Entonces nos quedarán k − 1 ciclos formados con los n − 1 elementos restantes. Se pueden formar sn -1,k -1 de ellos. Al añadir de nuevo el ciclo a tendremos ya sn-1,k -1 de las snk posibles permutaciones. En el segundo caso, retiremos también el elemento a de todos los ciclo donde aparezca. Entonces quedarán k ciclos formados con los n − 1 elementos restantes. Se pueden formar sn-1,k de ellos. Al reponer a, que se puede ubicar de n − 1 modos distintos en cada permutación, tendremos las restantes (n − 1) sn-1,k de las snk posibles particiones. Luego hemos obtenido la ley de recurrencia s nk = sn -1,k −1 + (n − 1) sn-1,k 32 El Triángulo de Stirling de 1ª clase n k 0 1 2 3 4 5 6 … 0 1 1 0 1 2 0 1 1 3 0 2 3 1 4 0 6 11 6 1 5 0 24 50 35 10 1 6 0 120 274 225 85 15 1 7 0 720 176 4 1624 735 17 5 21 1 8 0 5040 … … … … … … … … k-1 k … … … Éste, más éste por n-1 dan éste n snk = sn −1,k −1 + (n − 1) sn −1,k (n-1)! 33 Leyes de Recurrencia (2) Una familia ordenada –según los números naturales– de fórmulas F(n) se dice recurrente o recursiva cuando la fórmula n-sima se puede obtener sistemáticamente a partir de un número fijo de las anteriores. Habitualmente, la recurrencia utiliza un número pequeño de fórmulas anteriores a la n-sima para establecer ésta. Ya hemos visto que un problema de recurrencia completo está formado por una regla de recurrencia más el dato de algunos valores iniciales. La solución de un problema de recurrencia es una sucesión de números generada a partir de los valores iniciales usando la ley recursiva de que se trate. Veamos un ejemplo: ⎧ F = F n −1 E l p r o b le m a d e r e c u r r e n c i a c o m p le t o f o r m a d o p o r ⎨ n ⎩ F0 = 2 t i e n e p o r s o lu c i ó n l a s u c e s i ó n n u m é r i c a {2 , 2 , 2 , 2 , . . . .} , p u e s la le y d e r e c u r r e n c i a d i c e q u e c a d a t é r m i n o e s i g u a l a l a n t e r i o r . C o m o e l p r i m e r o q u e n o s d a n e s 2 , t o d o s lo s d e m á s v a le n i g u a l. 34 También puede considerarse la recurrencia sobre dos o más variables: Por ejemplo, el Triángulo de Pascal muestra una fórmula recurrente sobre dos variables. La solución de un problema completo de recurrencia sobre dos variables es una tabla de números generada a partir de los valores iniciales usando la ley recursiva de que se trate. La sucesión de Fibonacci La sucesión de Fibonacci es la solución del siguiente problema de recurrencia: ⎧ Fn = Fn − 1 + Fn − 2 ⎨ ⎩ F0 = 0, F1 = 1 que es la sucesión num érica {0,1,1,2,3,5,8,13,21,34,55,89,144,...} , pues la ley de recurrencia dice que cada térm ino es la sum a de los dos anteriores. P or tanto hacen falta dos valores iniciales. Los elem entos de la sucesión se llam an "núm eros de Fibonacci". Una vez escrita la ley de recurrencia, hallar la sucesión es inmediato, pero se plantea este problema: ¿Será posible dar una fórmula directa para el n-simo número sin tener que pasar obligatoriamente por todos los anteriores? 35 Algunas herramientas matemáticas a) Funciones generatrices Una serie de potencias es una expresión ∑ a x . Cuando sea posible obtener una n n serie de potencias a partir de alguna función f ( x ), diremos que la función f ( x ) es una función generatriz de la sucesión de coeficientes {a0 , a1 , a2 ,...} . 1 , si efectuamos formalmente la división según la 1− x regla de división de polinomios, obtenemos la serie 1 + x + x 2 + x 3 + ..., que podemos Por ejemplo: Dada la expresión f ( x ) = ∞ también representar como ∑ a x . La sucesión de coeficientes es {1,1,1,1,...} , así que n n=0 f ( x) = n 1 es función generatriz de {1,1,1,1,...} . 1− x 36 b) Desarrollo en fracciones simples: Un ejemplo ilustrativo px + q . Desarrollarla en fracciones simples ( x − a )( x − b ) px + q A B = + consiste en calcular dos números A y B tales que . ( x − a )( x − b ) x − a x − b Los números A y B se hallan fácilmente operando y resolviendo un sistema de dos Consideremos la expresión ecuaciones con dos incógnitas: ⎧ A+ B = p ( A + B ) x − ( Ab + Ba ) A B px + q + = = ⇒⎨ ( x − a )( x − b ) ( x − a )( x − b ) x−a x−b ⎩bA + aB = − q Ejemplo: ⎧ A+ B =1 ⎧ A = 1/ 2 x−2 x−2 luego ⎨ y por tanto = ⇒⎨ − + = 2 = 3 / 2 A B B x 2 − 1 ( x − 1)( x + 1) ⎩ ⎩ x − 2 1/ 2 3 / 2 = + . x2 − 1 x − 1 x + 1 37 Aplicación a la sucesión de Fibonacci: Función generatriz Sea { F0 , F1 , F2 , F3 ,...} la sucesión de Fibonacci. Vamos a encontrar una función generatriz para ella. Para hallarla, escribamos conjuntamente la ley de recurrencia ⎧ Fn = Fn −1 + Fn − 2 y las condiciones iniciales en una única ecuación: De ⎨ pasemos a F F = = 0, 1 1 ⎩ 0 Fn = Fn −1 + Fn − 2 + [ n = 0, 0] + [ n = 1, 1] . Multipliquemos ahora toda la ecuación por x n y sumemos sobre n desde 0 hasta ∞: Nos quedará: ∞ ∞ ∑F x = ∑F n n =0 n n =0 ∞ ∑F x n =0 n ∞ n n −1 x + ∑ Fn − 2 x + ∑ {[ n = 0, 0] + [ n = 1, 1]} x n , o bien = x ∑ Fn −1 x n =1 ∞ ∞ n n n =0 n =0 n −1 +x ∞ 2 ∑F n=2 n−2 x n−2 ∞ + x. Si escribimos ahora f ( x) = ∑ Fn x n , n=0 obtendremos la "ecuación funcional" f ( x ) = xf ( x ) + x 2 f ( x ) + x, de donde: (1 − x − x 2 ) f ( x) = x, luego f ( x) = x es la función generatriz buscada. 2 1− x − x 38 Aplicación a la sucesión de Fibonacci: Desarrollo en fracciones simples −x y apliquemos 2 x + x −1 la técnica de las fracciones simples. Para ello, resolvemos x 2 + x − 1 = 0 : Escribamos la función generatriz como f ( x) = −1 ± 5 , a cuyas soluciones llamaremos − ϕ y ϕ (el número ϕ se 2 llama "número de oro" o "divina proporción") . Las fracciones parciales x= A A B ϕ obtenidas son y . Si escribimos la primera en la forma , x x +ϕ x −ϕ 1+ ϕ A hallamos el desarrollo ϕ 1 + ϕx = ϕA ⎡1 − ϕx + ⎣⎢ ( ) ( ) ...⎤⎦⎥ , y análogamente x ϕ 2 − x 3 ϕ para la otra. Sumando y juntando términos se obtiene la expresión de los Fn , los coeficientes de x n en el desarrollo total: Acabarlo como ejercicio. 39 Las “Torres de Hanoi”, 1 El problema consiste en calcular el número de movimientos necesarios para pasar todos los discos de la primera varilla a la segunda (o a la tercera) respetando las siguientes reglas: • Sólo se puede mover un disco cada vez • Los discos que haya en cualquier varilla han de estar ordenados por diámetros decrecientes hacia arriba. El número de movimientos depende de la cantidad de discos. Si hay n discos, M n representará el número de movimientos. Es claro que M 0 = 0 y M 1 = 1: Varilla 1 Varilla 2 Varilla 3 Movts: Varilla 1 Varilla 2 Varilla 3 0 Movts: 0 M0 = 0 1 M1 = 1 40 Las “Torres de Hanoi”, 2 Varilla 1 Varilla 2 Varilla 3 Movts: Varilla 1 Varilla 2 Varilla 3 0 Movts: 0 1 1 2 2 3 M2 = 3 3 Tras el movimiento 2, estamos en el caso de un único disco: un movimiento más, y terminamos… 4 M3 = 7 Tras el movimiento 4, estamos en el caso de dos discos, así que con tres movimientos más, acabamos… 41 Las “Torres de Hanoi”, 3 Ahora ya podemos formular la ley de recurrencia: ⎧ M n +1 = 1 + 2 M n ⎨ M0 = 0 ⎩ Discos 0 1 2 3 4 … Movs: 0 1 3 7 15 … Si operamos un poco obtendremos una fórmula cerrada para M n : M n = 1 + 2 M n −1 = 1 + 2(1 + 2 M n − 2 ) = 1 + 2 + 4 M n − 2 = 1 + 2 + 4(1 + 2 M n −3 ) = = 1 + 2 + 3 + 4 + 8M n −3 = 20 + 21 + 22 + 23 M n −3 = ... = = 20 + 21 + 22 + 23 + ... + 2k M n − k = 20 + 21 + 22 + 23 + ... + 2n −1 M 1 , y como M 1 = 1, nos quedará, sumando la progresión geométrica de razón 2: M n = 20 + 21 + 22 + 23 + ... + 2n−1 = 2n − 1 42