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.