FSA: Instruções individuais
Crie uma função que, ao receber uma lista de instruções individuais de um autômato finito, gere um FSA no formato descrito neste desafio. Cada instrução será uma lista de três elementos: O primeiro elemento será o estado atual, o segundo elemento será a entrada à qual a instrução se refere e o terceiro elemento será o novo estado.
Por exemplo, a instrução ["S0", 1, "S1"] indica que, se o estado atual for "S0", ao receber 1 como entrada, o novo estado será "S1". Uma decomposição do FSA deste desafio pode ser vista abaixo:
Exemplos
divisible = [
["S0", 0, "S0"], ["S0", 1, "S1"],
["S1", 0, "S2"], ["S1", 1, "S0"],
["S2", 0, "S1"], ["S2", 1, "S2"]
]
combine(divisible) ➞ {
"S0": ["S0", "S1"],
"S1": ["S2", "S0"],
"S2": ["S1", "S2"]
}Observações
- Todo FSA usará um alfabeto binário.
- Todos os estados terão o formato
Sn, ondené um número inteiro, por exemplo,S2.