FSA: Creando máquinas
Crea un autómata finito que determine si un número binario es divisible por cinco. El autómata finito de este desafío se puede construir de la siguiente manera:
Ejemplo de AFD
divisible = {
"S0": ["S0", "S1"],
"S1": ["S2", "S0"],
"S2": ["S1", "S2"]
}Cada clave es un estado y cada valor indica las instrucciones para cada tipo de entrada. Para "S0", el arreglo ["S0", "S1"] indica que, si se recibe un 0, el nuevo estado es "S0". Si se recibe un 1, el nuevo estado es "S1".
Notas
- Recuerda crear un diccionario, no una función.
- En este caso,
"accept"significaría que el número es divisible por cinco, mientras que"reject"significa que no lo es. - Los estados inicial y de aceptación deben ser ambos
"S0". - El autómata debe leer los dígitos de un número binario de izquierda a derecha. Por ejemplo, el primer dígito de 26 (0b11010) sería 1, ya que ignoramos el 0b.