Puede, para cualquier n dado, realizar un seguimiento en línea de la divisibilidad del número representado por la secuencia completa de bits vistos hasta ahora , y puede hacerlo rápidamente sin recordar ninguno de los bits que vio antes . Como usted dice, todo lo que necesita es un autómata de estado finito con n estados, cada uno con dos transiciones, uno para cada posible bit siguiente. Como ejemplo, aquí está el autómata de estado finito para la divisibilidad por 3:
Comience en el estado A y, por cada bit que ingrese, avance por la flecha correspondiente. En cualquier momento dado, si estás en el estado A, el número es divisible por 3. Con un poco de reflexión y tiempo, puedes construir autómatas similares para cualquier n. Aquí hay uno que funciona para dividir entre 5:
- ¿Cuáles son las mejores prácticas para usar algoritmos de Machine Learning con Android?
- ¿Cómo se mejora un algoritmo de aprendizaje automático basado en la experiencia?
- ¿Por qué mi código JavaScript muestra un error de bucle infinito en la línea 7? ¿Por qué no está eliminando los elementos de la matriz de entrada?
- Tengo la cadena de entrada, también tengo la cadena encriptada. ¿Cómo averiguo qué algoritmo de cifrado se utilizó?
- ¿Cómo funcionan los algoritmos comerciales?
El método para construirlo se describe aquí: Diseñe DFA aceptando cadenas binarias divisibles por un número ‘n’