1. Objetivo 2. Caso particular - Cuba-Wiki

Anuncio
“Pequeño algoritmo de Algebra”
Facundo Matı́as Carreiro
27 de mayo de 2005- Versión 1.0
1.
Objetivo
En este texto trato de presentar un algoritmo y algunos criterios para poder
resolver correctamente los problemas del estilo “Cuántas palabras (únicas) de k
letras se pueden formar con la palabra x?”, teniendo x más letras que k.
2.
Caso particular
Para simplificar la explicacı́on de la manera en que se me ocurrió este método voy
a calcular cúantas palabras de 6 letras pueden formarse con la palabra REPELER.
Analizamos la cantidad de letras:
(
(
R −→ 2
P −→ 1
5
2
(1)
E −→ 3
L −→ 1
Usando la notacion Rc para repeticiones totales de ese caso en particular, Rx
para las repeticiones de la letra x en ese caso y Nrc para la cantidad de letras no
repetidas necesarias para ese caso, paso a crear la tabla de todos los casos posibles:
Caso Rr Re Rc Nrc Posible
A
2
2
4
2
si
B
2 ≤1
3
3
no
C ≤1
2
3
3
no
D ≤1 ≤1
2
4
no
E
2
3
5
1
si
F ≤1
3
4
2
si
Los cásos b, c, d no son posibles porque no alcanzarı́an las letras totales para
completar la palabras. Por ejemplo si tomo el caso b, yo tendrı́a colocadas las letras
R y E, sumando 3 entre las dos, y faltarı́an 3 letras para completar las 6 que nos
piden, pero solo tenemos disponibles la P y la L. Descartando los casos en los que
no nos alcanzan las letras, analizamos la cantidad de posibilidades del resto:
1
A. En el primer caso tenemos fijas 2R y 2E osea 4 letras, faltan 2 para completar
las 6 que tienen que obligatoriamente ser la P y la L. La fórmula para este
caso quedarı́a de la siguiente manera:
6 4! 2
2!
(2)
4 2!2! 2
La ecuación fue armada de la siguiente manera: De los 6 lugares que necesitamos llenar tomamos 4 (2 para las Re y 2 para las Rr ), el primer combinatorio
nos da la cantidad de maneras de tomar esos 4 lugares. Después multiplicamos
por las permutaciones posibles de esas 4 letras y dividimos por la cantidad de
repeticiones de cada letra. La segunda combinatoria es para elegir 2 letras de
las 2 no repetidas que nos quedan, lo que en este caso resulta redundante.
Luego multiplicamos por la cantidad de permutaciones posibles de las letras
restantes (nótese que en este caso no es necesario dividir, porque esas letras
no se repiten).
E. El próximo caso posible es el E, donde tenemos 2 letras R y 3 letras E. Armando
la ecuación de la misma manera que antes quedarı́a:
6 5! 2
1!
(3)
5 2!3! 1
F. En el caso F la ecuación serı́a:
6 4! 2
2!
4 3!1! 2
(4)
La cantidad de palabras de 6 letras que se pueden formar con la palabra REPELER estarı́a dada por la suma de todos los casos posibles:
6 5! 2
6 4! 2
6 4! 2
2! +
1! +
2! =
(5)
5 2!3! 1
4 3!1! 2
4 2!2! 2
=
6! 4! 2!
2! +
4!2! 2!2! 2!0!
6!
6!
=
+ +
2!2! 3!
6! 5! 2!
6! 4! 2!
1! +
2! =
5!1! 2!3! 1!1!
4!2! 3!1! 2!0!
6!
= 180 + 120 + 120 = 420
3!
2
(6)
(7)
3.
Generalización
Ahora voy a presentar una generalización del algoritmo para que funcione con
cualquier caso general, junto con unos criterios para los casos.
3.1.
Notación
Dada una palabra de t letras (t ∈ N) cuantas palabras de k letras (k ∈ N) se
pueden formar. Definimos Nr ∈ N como la cantidad de letras sin repeticiones en la
palabra original. Dentro de cada posible caso definimos Rc ∈ N como la cantidad
total de repeticiones para ese caso en especifico, R1 . . . Rn (Rn ∈ N) como la cantidad
de repeticiones de la letra n para ese caso en especı́fico.
3.2.
Criterio de casos
Para crear la lista de casos comenzamos tomando R1 . . . Rn con la mayor cantidad de repeticiones posibles para todas, luego vamos restando de a 1 de la última
hasta que quede en 1. Cuando llega a uno, restamos 1 a la anterior y volvemos a
poner esa letra como el máximo valor posible, seguimos este proceso hasta que todas
las letras nos queden con el número 1:
1. 4A 2B 3C 2D (Rc = 11)
2. 4A 2B 3C 1D (Rc = 10)
3. 4A 2B 2C 2D (Rc = 10)
4. 4A 2B 2C 1D (Rc = 9)
5. 4A 2B 1C 2D (Rc = 9)
.
....
n. 1A 1B 1C 1D (Rc = 4)
Ahora, para que el caso pueda existir tiene que cumplirse que
k − R c ≤ Nr
(8)
R c ≥ k − Nr
(9)
Entonces. . .
La cantidad de repeticiones del caso tienen que ser mayores o iguales a la cantidad
de letras pedidas menos las no repetidas.
3
3.3.
Fórmula de caso
Generalizando el método aplicado en (2) podemos llegar a la formula inicial
k
Rc !
Nr
(k − Rc )!
(10)
Rc R1 ! . . . Rn ! k − Rc
Que expandiendo los combinatorios se convierte en. . .
k!
Rc !
Nr !
(k − Rc )!
Rc !(k − Rc )! R1 ! . . . Rn ! (k − Rc )!(N r − k + Rc )
(11)
Simplificando. . .
k!Nr !
(k − Rc )!(Nr + Rc − k)!R1 ! . . . Rn !
3.4.
(12)
Resultado
Numerando los casos posibles como C1 . . . Cn el resultado estaria dado por
n
X
Ci
∀Ci /Rc (Ci ) ≥ k − Nr
i=1
4
(13)
4.
Ejemplo de aplicación
Calcular la cantidad de palabras de 4 letras se pueden formar con las letras de
la palabra REPETIR.

(

P −→ 1
R −→ 2
4
3 T −→ 1
(14)

E −→ 2

I −→ 1
Primero creo la lista de casos según el criterio antes citado. . .
A. 2R 2E −→ Rc = 4 ≥ 4 − 3 = 1
B. 2R 1E −→ Rc = 3 ≥ 1
C. 1R 2E −→ Rc = 3 ≥ 1
D. 1R 1E −→ Rc = 2 ≥ 1
Y después sumo la formula de cada caso. . .
4!3!
4!3!
+
+
(4 − 4)!(3 + 4 − 4)!2!2! (4 − 3)!(3 + 3 − 4)!2!1!
4!3!
4!3!
+
+
=
(4 − 3)!(3 + 3 − 4)!1!2! (4 − 2)!(3 + 2 − 4)!1!1!
= 6 + 36 + 36 + 72 = 150
5
(15)
Descargar