L = {a^n b^n c^n}, как я могу сказать прямо, не глядя на производственные правила, что этот язык не является регулярным? я могу использовать лемму накачки, но некоторые ребята говорят, что просто смотрят на грамматику, что это не обычная. как это возможно?Как я могу видеть, что язык не является регулярным
ответ
У вас есть три символа в вашем алфавите. Все они зависят от одной и той же переменной: n. Теперь, если у вас есть только два из них, представьте {a^n b^n}, вы можете легко выполнить задачу с этой продукцией:
S -> ab | aSb
Но у вас их три, и нет возможности связать их все с одной и той же переменной. Вы должны использовать две категории синтаксиса, но, поскольку вы это делаете, они не связаны друг с другом, и вы можете создавать разные строки из каждого из них. Единственный способ связать их - это только одна категория синтаксиса, и это невозможно.
Вы не можете сделать:
S -> ABC | aSbc
На самом деле вы не можете иметь категорию синтаксиса в своей последней строке, так что это не строка. Его нужно снова преобразовать. И что вы можете сделать с этого момента? Вы можете сделать:
aabcbc
или вы можете сделать:
aaSbcbc
Первая строка, а не является частью вашего языка. Во-вторых, это еще не строка. Но очень легко понять, что вам не удастся сделать какую-либо разрешенную строку.
Вы имеете в виду, я не могу сделать так: S -> abc | aSbc, но в этом случае баланс тоже в порядке, у меня есть n раз b и c. но почему это неправильно? – doniyor
Отредактировано для объяснения. – Zagorax
о, я вижу, поэтому, чтобы быть принятым по грамматике, порядок также является правильным? как aabbcc принимается, но не aabcbc, только потому, что порядок не в порядке. я прав? – doniyor
- 1. Почему язык не является регулярным?
- 2. Является ли этот язык регулярным
- 3. Если язык L не является регулярным, L * регулярным?
- 4. Синтаксическая ошибка, что я не могу видеть
- 5. Бесконечный язык не может быть регулярным? Что такое конечный язык?
- 6. Доказывая, что язык является регулярным, давая регулярное выражение
- 7. Ошибка Я не могу видеть
- 8. Как я могу доказать, является ли этот язык регулярным или нет?
- 9. Как я могу сказать, что язык не содержит контекста с первого взгляда?
- 10. Не могу видеть, что я набираю в iterm2
- 11. Узнайте, что является регулярным языком
- 12. Как я могу видеть, является ли строка числовой?
- 13. Как я могу показать, что мое приложение не является кейлоггером?
- 14. Что случилось с numpy? Я не могу видеть результат
- 15. Не могу видеть, что я набираю в telnet
- 16. что среднее от contex free не является регулярным
- 17. Теория вычислений - показывает, что язык является правильным
- 18. Как я могу видеть, что базы данных cakephp сохраняют ошибки?
- 19. Я могу видеть язык урду в БД, но не на главной странице
- 20. Как доказать, что язык L не является регулярным? L = {a^3^k | k элемент N} является подмножеством {a, b} *
- 21. Как я могу видеть, что ar -s работает правильно?
- 22. Как я могу видеть, когда на объект влияет, и что?
- 23. Three.js, я не могу видеть объект
- 24. я не могу видеть Качели JSeparator
- 25. Я не могу видеть сервер, развернутый Rails?
- 26. Я не могу видеть pdf, созданный DynamicReport
- 27. Я не могу видеть кнопки - (после учебника)
- 28. Почему я не могу видеть это Див
- 29. Доказательство того, что язык не является регулярным с использованием Pumping Lemma
- 30. я не могу видеть весь HTML элемент
Этот вопрос принадлежит http://cs.stackexchange.com и ответ на [этот вопрос] (http://cs.stackexchange.com/questions/1031/how-to-prove-that-a-language - не-регулярный) дает вам советы и методы. (Техника 3 применяется здесь: используйте теорему Михилла-Нерода.) –