Podemos resolver un problema como este usando programación dinámica. Primero veamos el problema simplificado de encontrar el número de números de n dígitos con tal propiedad. Seguiremos agregando dígitos desde la izquierda y solo realizaremos un seguimiento de si hemos repetido el último dígito. Esto significa que solo necesitamos 2 variables. El dígito más a la izquierda puede ser uno de 1-9. Entonces tenemos 10 posibilidades para el siguiente dígito. Nueve de ellos no dan repetición y 1 lo hará. Aquí hay un código de muestra (python) de cómo funciona (si n está definido)
rep = 0 norep = 9 para i en rango (n-1): rep, norep = 9 * (rep + norep), rep print (rep + norep)
Ahora, si tenemos las restricciones reales como A = 1 y B = 12345, podemos resolver mediante una serie de pasos
- Primero cuente todos los números de 1,2,3,4 dígitos.
- Incluya números de 5 dígitos que comiencen con 10___ u 11___
- Incluya números de 5 dígitos que comiencen con 120___ o 121__ o 122__
- Incluya números de 5 dígitos que comienzan con 1230_, 1231_, 1232_ o 1233_
- Incluya los números 12340, 12341, 12342, 12343, 12344, 12345.