121
De todo un poco... / lenguaje de cadenas con número de 1´s una unidad superior al de 0´s
« en: 02 de Abril 2014, 14:06 »
PREGUNTA: Dado el alfabeto Σ = {0, 1}, se define L como el lenguaje formado por las cadenas que cumplen que N(0) = N(1) + 1 donde N(0) es el número de apariciones del símbolo 0 y N(1) es el número de apariciones del símbolo 1. Indicar cuál de las siguientes gramáticas independientes del contexto genera L.
a) S -- > CB | BC | 0C1 | 1C0 | 0
C -- > 0C1 | 1C0 | 0
B -- > 0B1 | 1B0 | 01 | 10
b) S -- > 0A1 | 0
A -- > 0A1 | 0B | 0
B -- > 0B | 0
c) S -- > CB | BC | 0C1 | 1C0 | 0 | ε
C -- > 0C1 | 1C0 | 0
B -- > 0B1 | 1B0 | 01 | 10
RESPUESTA: la opción correcta es la a).
El lenguaje comprende las cadenas donde el número de ceros es igual al número de unos más uno, por ejemplo: 100 (aparece cero una vez más que el 1), 11000, 1110000.
Como no indica nada relativo al orden se admite también 010, 001, 00011, 01010, etc.
¿Se admite 0? Sí, caso de que el número de unos es cero y el número de ceros es una unidad más que el número de unos. ¿Se admite 1? No, en este caso el número de ceros tiene que ser dos. ¿Se admite 01? No ¿Se admite 10? No ¿Se admite la cadena vacía? No, porque no cumple que el número de ceros sea uno más que el número de unos.
La opción b) no permite derivar cadenas que empiecen por 1, por tanto no representa el lenguaje.
La opción c) se descarta por admitir la cadena vacía.
La opción a) permite derivar el cero, cadenas que empiecen por 0 o por 1 y que permiten añadir pares de ceros y unos en cualquier orden para cerrarse han de derivar la C a cero, lo cual supondrá que la cadena tenga un número de ceros una unidad superior al número de unos. Respondemos por tanto la opción a).
a) S -- > CB | BC | 0C1 | 1C0 | 0
C -- > 0C1 | 1C0 | 0
B -- > 0B1 | 1B0 | 01 | 10
b) S -- > 0A1 | 0
A -- > 0A1 | 0B | 0
B -- > 0B | 0
c) S -- > CB | BC | 0C1 | 1C0 | 0 | ε
C -- > 0C1 | 1C0 | 0
B -- > 0B1 | 1B0 | 01 | 10
RESPUESTA: la opción correcta es la a).
El lenguaje comprende las cadenas donde el número de ceros es igual al número de unos más uno, por ejemplo: 100 (aparece cero una vez más que el 1), 11000, 1110000.
Como no indica nada relativo al orden se admite también 010, 001, 00011, 01010, etc.
¿Se admite 0? Sí, caso de que el número de unos es cero y el número de ceros es una unidad más que el número de unos. ¿Se admite 1? No, en este caso el número de ceros tiene que ser dos. ¿Se admite 01? No ¿Se admite 10? No ¿Se admite la cadena vacía? No, porque no cumple que el número de ceros sea uno más que el número de unos.
La opción b) no permite derivar cadenas que empiecen por 1, por tanto no representa el lenguaje.
La opción c) se descarta por admitir la cadena vacía.
La opción a) permite derivar el cero, cadenas que empiecen por 0 o por 1 y que permiten añadir pares de ceros y unos en cualquier orden para cerrarse han de derivar la C a cero, lo cual supondrá que la cadena tenga un número de ceros una unidad superior al número de unos. Respondemos por tanto la opción a).