[Ejercicio 1] [Parte 9]

[Ejercicio 1] [Parte 9]

de Leandro Pereira Modzelewski -
Número de respuestas: 1

Buenas, quería saber si me podían tirar alguna pista de como razonar esta parte del ejercicio. 

Lo que se me había ocurrido era ir guardando en el stack todas las a que hubiera y luego cuando empiezo a consumir b voy sacando por cada una. Si llego a zo y todavia me queda b por consumir, o empiezo a consumir c y todavia hay cosas en el stack entonces ya se cumple que n distinto de m y lo mando a un estado terminal en el que termino de consumir lo que me queda para terminar la tira. El problema viene que si llegan a ser iguales la cantidad de a que de b, entonces tendría que chequear que la cantidad de b sea distinta de la cantidad de c.

Lo que pasa es que por como hice la primera parte yo por cada b que apareció saque una a del stack, entonces cuando empiezo a contar las c tendría que tener guardado en algún lado esa cantidad de b que conté, pero no lo tengo.

No se si habría que encarar el ejercicio por otro lado o hay alguna vuelta a lo que estoy pensando que me ayude a terminarlo.

Agradezco puedan darme una mano,

Leandro.

En respuesta a Leandro Pereira Modzelewski

Re: [Ejercicio 1] [Parte 9]

de Santiago Gongora -

Buen día Leandro,

probá si podés sacar la solución agregándole el uso de no determinismo a tu estrategia.

Como los dos casos son un OR ( n \neq m \vee m \neq k ) , entonces los podés chequear por separado. Entonces fijate que las primeras a's que leas pueden "interpretarse" de dos maneras:

  • 1) querés registrarlas en el stack para luego compararlas contra la cantidad de b's (caso  n \neq m )
  • 2) no te interesan en lo más mínimo, porque lo que querés es registrar la cantidad de b's para compararlas con las c's (caso m \neq k )
Eso quiere decir que para la primera "a" que leas vas a tener que tomar las dos decisiones a la vez:
  • 1) Para el caso  n \neq m  \longrightarrow (a,z_0, Nz_0)
  • 2) Para el caso  m \neq k  \longrightarrow (a,z_0, z_0)
Pensalo un poco más y cualquier cosa, a las órdenes.

Santi