La clave de este problema es combinar la elegancia y la fuerza bruta.
La cadena es "OOOAEESTMLHHXX".
Hay una restricción: la primera y la última letra deben ser cada una "O", "A" o "E". Aunque la cadena podría (por ejemplo) empezar y terminar con "O", como sólo hay una "A", ésta no puede aparecer en ambos extremos de la cadena.
Esto significa que existen los grupos de letras "OOO", "EE", "HH" y "XX".
También existen las letras simples "A", "S", "T", "M" y "L".
Por lo tanto, la cadena puede variar en longitud de 2 a 14, inclusive.
Tal y como yo lo veo, vas a necesitar 6 variables.
Dejemos que $L_O \equiv ~$ el número de letras "O" utilizadas.
Dejemos que $L_E\equiv ~$ el número de letras "E" utilizadas.
Dejemos que $L_H \equiv ~$ el número de letras "H" utilizadas.
Dejemos que $L_X \equiv ~$ el número de letras "X" utilizadas.
Dejemos que $L_Z \equiv ~$ el número de letras utilizadas del grupo "A", "S", "T", "M" y "L"
Dejemos que $T \equiv ~$ el número total de letras utilizadas en la cadena.
La parte preliminar de este análisis se parecerá a el siguiente problema .
Cuando estudies este problema te darás cuenta de algunos puntos.
-
Hay dos maneras de atacar el # de soluciones - [Estrellas y Barras + Inclusión - Exclusión] o generar funciones.
-
El número de soluciones que genere será en realidad una función de $T$ que representa la longitud variable de la cadena (es decir, de 2 a 14 inclusive).
-
Lo único que hace este análisis es identificar todas las posibles soluciones enteras no negativas soluciones enteras para cada una de las variables $L_O, L_E, L_H, L_X, L_Z.$
-
En cada valor posible de $T$ Debe centrarse en cada una de las soluciones individuales soluciones por separado .
-
A continuación, hay que calcular una fórmula que represente el número de posibles cadenas, en función de las 6 variables.
-
Tenga en cuenta que tiene que ser muy cuidadoso para ciruela pasa eliminar cualquiera de las soluciones que no tengan al menos dos vocales. Dado que el número de vocales se se refleja en la interacción entre $L_O, L_E,~$ y si $a$ hace una aparición, tienes un par de opciones aquí.
Podrías separar "a" del otro grupo y convertirla en una variable propia.
O puede declinar la división de "a", y simplemente ignorar cualquier cadena que que no empiecen y terminen con una vocal.
Lo creas o no, a menos que alguien tenga un enfoque más elegante, aquí es donde comienza la diversión. Para un conjunto dado de valores para las variables, tienes que enumerar el número de posibles cadenas distintas que se pueden formar.
Voy a darles una enumeración inicial. Sin embargo, tendrá que pulir la fórmula, ya que la primera y la última letra deben empezar por una vocal.
Puedes pensar en el número de cadenas como una fracción que es igual a
$$\frac{T!}{D\text{(enominaor)}}.$$
Aquí,
$$D = (L_O!) \times (L_E!) \times (L_H!) \times (L_X!).$$
La razón de esto es que (por ejemplo) si la "O" aparece en un grupo de $L_O$ ranuras, hay que compensar que se cuente $(L_O!)$ veces. Este enfoque es la forma más fácil de ajustar el recuento excesivo.
I destacar : Dejo la restricción de que ambos extremos de la cadena sean vocales.
Obviamente, vas a tener que programar tu ordenador con mucho cuidado.
Hay una alternativa obvia. Como sería ridículo intentar contar el número de soluciones (sin usar un ordenador) usando todo un grupo de fórmulas elegantes, tienes dos alternativas.
-
Propón un enfoque más elegante que el que he sugerido.
-
Abandonar toda elegancia y simplemente utilizar la fuerza bruta para que el ordenador que el ordenador recorra todas las cadenas posibles, para ver cuáles satisfacen las restricciones. En este caso, el número de cadenas posibles sería estrictamente inferior a o igual a a lo siguiente:
$$\sum_{k=2}^{14} ~\binom{14}{k} \times k!$$ .
Anexo
Ten en cuenta que desconozco totalmente tanto las funciones generadoras como las exponenciales. I sospecha que existe un enfoque más elegante a través de las funciones generadoras exponenciales. Sin embargo, podría estar equivocado.
Tendrías que estudiar primero las funciones generadoras y luego estudiar las funciones generadoras exponenciales para que esto funcione. Además, tendrías que incluir de alguna manera la restricción de que la cadena empiece y termine con una vocal.