Skip to content

Instantly share code, notes, and snippets.

@guissalustiano
Last active January 11, 2022 21:44
Show Gist options
  • Save guissalustiano/12d6925abed40c53f44b4fef6a0e2506 to your computer and use it in GitHub Desktop.
Save guissalustiano/12d6925abed40c53f44b4fef6a0e2506 to your computer and use it in GitHub Desktop.
Maquina de turing para validar 0^n 1^n | n > 0
# use in https://turingmachine.io/
input: '0111' # try 1100
blank: ' '
start state: passo2
synonyms:
accept: {R: accept}
reject: {R: reject}
table:
passo2:
[0, X]: {write: 'X', R: direita}
Y: {R: passo2} # continua p/ direita enquanto for Y
' ': accept
1: reject # esse colocar "accept" aqui ele funciona para o caso certo mas nao para o caso errado
direita:
[0, X, 1]: {R: direita} # continua p/ direita enquanto n for ' '
[' ', Y]: {L: passo3} # chegou no fim e nao achou 1
passo3: # comeca no 1 a direita
1: {write: Y, L: passo4} # achou 1
Y: accept
[0, X, ' ']: reject # chegou no fim e nao achou 1
passo4:
[1, Y]: {L: passo4} # continua p/ esquerda enquanto n for 0
0: {write: X, R: passo3}
X: {R: passo2}
' ': reject # chegou no fim e nao achou X
accept:
reject:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment