2001-gre-vs-practice.pdf/Q16 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
Строка 57: Строка 57:
  
  
{{question-ok|}}{{reserve-task|[[Участник:ZharovG|ZharovG]] 16:15, 20 декабря 2024 (UTC)}}{{checkme|[[Участник:ZharovG|ZharovG]] 16:25, 20 декабря 2024 (UTC)}}
+
{{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, ложное.