¿Cómo verifico si un número binario es divisible por decir ‘n’?

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:

El método para construirlo se describe aquí: Diseñe DFA aceptando cadenas binarias divisibles por un número ‘n’

More Interesting

¿Cuál es una explicación simple de por qué BFS bidireccional se ejecuta en [math] \ Theta (\ sqrt {n}) [/ math]?

¿Para qué aplicaciones son especialmente adecuados los lenguajes de programación lógica? ¿Cuándo usarías un lenguaje como Prolog? ¿Cuáles son las aplicaciones más exitosas de la programación lógica?

Cómo obtener una comprensión profunda y exhaustiva de la optimización de algoritmos en C ++

¿Existe un curso en línea para algoritmos y estructuras de datos que no requiera matemática discreta como requisito previo?

¿Existe un algoritmo para aplicar a una imagen que muestre lo que vería alguien que necesita corrección de la visión?

¿Las siguientes declaraciones de bucle en C / C ++ tienen el mismo tiempo de ejecución?

¿De dónde debo aprender los algoritmos de aprendizaje automático?

En lenguajes como C y C ++, ¿por qué las matrices tienen que ser de tamaño constante?

¿Cómo se puede encontrar la complejidad del tiempo para el recorrido DFS?

¿Es la Biblia solo los algoritmos de aprendizaje automático de la realidad que nos dicen cómo se desarrolló, comenzando con el 0 que se convirtió en 1 para la luz?

¿Qué es una explicación intuitiva de la complejidad del tiempo de ejecución del algoritmo?

¿Qué es una explicación intuitiva de union-find?

¿Cuáles son algunos buenos libros para aprender y practicar estructuras de datos y algoritmos?

Digamos que encontramos un algoritmo que resuelve problemas de NP-Complete en tiempo polinómico pero no podemos probarlo. ¿Cuáles serían las consecuencias?

¿Cómo se utilizan las estructuras de datos en las industrias?