¿Cuántos identificadores diferentes puede tener un lenguaje de programación ficticio, cuando deben respetarse las siguientes reglas?
- Sólo se admiten mayúsculas, por lo que los elementos de $\{A, ..., Z\}$ ,
- El identificador debe tener una longitud mínima de $1$ y como máximo $5$ .
- Las palabras clave AND, OR, IF, THEN y GOTO no pueden aparecer de ninguna forma en el identificador.
Para ello, he examinado las longitudes permitidas individualmente y luego he sumado todas las combinaciones.
Longitud = 1: Aquí sólo tenemos $26$ posibilidades.
Longitud = 2: Esta vez tenemos $26^2 - 2$ ya que IF y OR no pueden aparecer.
Longitud = 3: Esta también es bastante sencilla. Tenemos $25^3 - 1 - 2*26 - 2*26$ ya que no se permite que aparezca AND y todas las combinaciones que contengan IF (IF. y .IF) u OR (OR. y .OR) no son válidas.
Longitud = 4: Aquí es donde empiezo a tener mis problemas. He intentado hacer lo mismo aquí, pero no estoy muy seguro. Hay $26^4$ combinaciones totales. Esta vez THEN y GOTO no pueden aparecer, así que $-2$ para acomodar esto. Y tampoco puede aparecer, así que $-2*26$ . Pero para IF y OR no estoy seguro de cómo calcularlo. Al principio pensé que sería simplemente $-3*26^2 - 3*26^2$ (IF. , .IF. , ..IF , OR. , .OR. , ..OR), pero entonces pensé que esto contaría ciertas combinaciones más de una vez. La combinación IFOR, por ejemplo, se contaría dos veces, así que tendría que añadir $1$ para compensarlo. Luego están las combinaciones IFIF y OROR, que también se restarían dos veces por lo que tendría que sumar $+1+1$ otra vez. Y no estoy seguro de si me perdí algunos de estos.
Así que para Longitud > 3 no sé muy bien cómo abordar esto, para que no se me escape ninguna combinación y todo el mundo se cuente una sola vez.