Documente Academic
Documente Profesional
Documente Cultură
Matemáticas Discretas
Sergio Hernández
Facultad de ciencias de la Ingenieria
Universidad Católica del Maule
shernandez@ucm.cl
23 de marzo de 2018
1. Permutaciones y combinatoria
Muchos problema de conteo pueden ser vistos como arreglos de los elementos de un
conjunto de objetos con o sin repeticiones. Los principios fundamentales para el análisis de
problemas de conteo son la regla del producto y la regla de la suma.
1
Por ejemplo, usando la regla del producto podemos calcular la cantidad total patentes
de auto que es posible generar. En Chile, las patentes consisten un 4 letras y 2 números.
De modo de evitar la formación de palabras que puedan incomodar a los conductores,
se eliminaron algunos caracteres tales como las vocales y las letras Ñ,Q,M y N. De modo
Podemos separar el problema en 6 sub-tareas donde los primeros 4 elementos son caracteres
y los siguientes 2 elementos son digitos. Por lo tanto el número total de patentes es n =
184 ∗ 102
C=set(string.ascii_uppercase) - {’A’,’E’,’I’,’O’,’U’,’M’,’N’,’Q’}
D=set(range(10))
patentes=lic_gen(C,D)
len(patentes)
#resultado: 10497600
Muchos problemas requieren utilizar ambos principios al mismo tiempo. Por ejemplo,
el siguiente código genera todos las contraseñas de 4 elementos donde el primer caracter es
una letra mayscula o minscula, tales como A,B,C,a,b y c. Los siguientes caracteres pueden
ser algunas de estas letras o un nmero A,B,C,a,b,c,1,2,3.
#resultado: 4374
2
Utilizando el principio multiplicativo podemos observar que la cantidad de contraseñas
es n = 6 ∗ 93 . Sin embargo aparte de las contraseñas de largo 4, ahora también permitimos
contraseñas de largo 6 y 8. Por lo tanto, según el principio aditivo, el nmero total de
contraseñas ahora debiera ser n = 6 ∗ 93 + 6 ∗ 95 + 6 ∗ 97 . Es posible verificar este resultado
mediante el siguiente ejemplo:
#resultado: 29056482
n = (m) × (m − 1) × · · · × 1
= m!
Por ejemplo, sea el conjunto A = {1, 2, 3} un conjunto finito que contiene 3 elementos.
El número total de permutaciones n se obtiene a través de la regla del producto. El siguiente
código NumPy genera las permutaciones:
En general:
Definición 3. Permutaciones
Si n es un entero positivo y r es otro entero tal que 1 ≤ r ≤ n entonces existen
P (n, r) = n × (n − 1) × (n − 2) × · · · × (n − r + 1) permutaciones con r elementos
de un conjunto de n elementos distintos. Entonces:
n!
P (n, r) =
(n − r)!
3
Program 4 Generador de permutaciones
import itertools as it
import numpy as np
Definición 4. Combinaciones
Si n es un entero positivo y r es otro entero tal que 1 ≤ r ≤ n entonces existen
C(n, r) subconjuntos con r elementos de un conjunto de n elementos distintos
sin orden en particular. Entonces:
n!
C(n, r) =
r!(n − r)!
r=2
list(it.combinations(range(3),r))
4
Figura 1:
2. Tarea
1.) Permutaciones
El orden lexicográfico generaliza el ordenamiento común de un diccionario, sus-
tituyendo el alfabeto por cualquier collección que permita un orden. Por ejemplo
la cadenas S = {1, 3, 2, 4} es menor que V = {1, 3, 4, 2}, dado que S[3] < V [3].
Implemente el siguiente pseudo-codigo (Figura 1) para generar la siguiente per-
mutación en orden lexicográfico (tip:utilice generadores).
2.) Combinatoria
Dos equipos A y B juegan en un torneo donde el que ganador es aquel que gana
3 partidos.