2001-gre-vs-practice.pdf/Q16 — различия между версиями
Материал из DISCOPAL
ZharovG (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Строка 57: | Строка 57: | ||
− | {{question-ok | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 08:50, 21 декабря 2024 (UTC)}} |
− | [[Категория: | + | [[Категория:Формальные языки]] |
Текущая версия на 08:50, 21 декабря 2024
Вопрос: Q16-e5724f
Рассмотрите следующую грамматику:
S ::= AB A ::= a A ::= BaB B ::= bbA
Какое из следующих утверждений ложное?
Ответы
- Длина каждой строки, произведенной этой грамматикой, четная.
- Ни одна строка, произведенная этой грамматикой, не содержит нечетное количество последовательных символов b.
- Ни одна строка, произведенная этой грамматикой, не содержит три подряд идущих символа a.
- Правильный ответ: Ни одна строка, произведенная этой грамматикой, не содержит четыре подряд идущих символа b.
- Каждая строка, произведенная этой грамматикой, содержит не меньше символов b, чем символов a.
Объяснение
Исходники — вопрос 16 на 20 странице книги «2001-gre-vs-practice.pdf»
1. Длина каждой строки четная (A):
- Каждое правило увеличивает строку на четное количество символов: - A ::= a добавляет 1 символ (`a`), - A ::= BaB добавляет четное количество символов (два B и один `a`), - B ::= bbA добавляет четное количество символов (`bb` и один `A`). Таким образом, длина строки всегда четная. Это утверждение верно.
2. Нет строки с нечетным количеством последовательных `b` (B):
- Правило B ::= bbA всегда добавляет два символа b, поэтому количество последовательных b всегда четное. Это утверждение верно.
3. Нет строки с тремя подряд идущими `a` (C):
- A ::= a добавляет только 1 a, - A ::= BaB добавляет a между двумя символами B. В строке невозможно получить три подряд идущих a. Это утверждение верно.
4. Нет строки с четырьмя подряд идущими `b` (D):
- Это утверждение ложное, потому что возможно создать строку с четырьмя b. Рассмотрим пример: B ::= bbA → bb(bbA) → bbbbA. Таким образом, строка bbbb (четыре подряд идущих `b`) возможна.
5. Количество `b` всегда не меньше количества `a` (E):
- Каждое правило добавляет как минимум столько же b, сколько a (а в некоторых случаях больше). Например: - A ::= BaB добавляет 2 b и 1 a, - B ::= bbA добавляет 2 b и 1 a. Таким образом, это утверждение верно.
Правильный ответ — D, потому что утверждение, что в строках не может быть четырех подряд идущих b, ложное.