먼저 단어를 단어로 설명하십시오. 이 언어는 a로 시작하는 모든 문자열의 언어이며, b 다음에 a가 오며, b의 수는 a의 총 수와 같습니다 (양쪽에 있음).
다음으로 우리는 언어로 문자열을 가져 와서 새 문자열을 만드는 규칙을 생각해냅니다. 문자열이 주어지면 앞쪽에 a를 추가하고 가운데에 b를 추가하거나 가운데에 b를 추가하여 다음으로 긴 문자열을 얻을 수 있습니다. 빈 문자열은이 언어 (n = m = 0)이기도하므로 유도의 기본으로 사용할 수 있습니다. 조금 더 가깝게 보면 더 좋은 규칙을 얻을 수 있습니다. 즉, 어떤 문자열을 두 개의 문자열 (a^n b^n) (a^m b^m)으로 나눌 수 있습니다. 연결은 문법으로하기 쉽고^k b^k는 문법으로하기 쉽습니다. 그게 전부입니다.
내가 규칙을 얻을
...
S := LR
L := empty | aLb
R := empty | bRa
얻으려면, 예를 들어 아바바, ...
S := LR := aLbR := aaLbbR := aabbR := aabbbRa := aabbba
숙제 인 경우 태그를 붙이면 좋습니다. 이것이 자습이라면 다음 트릭을 없앨 것입니다 : 영어로 언어를 기술하십시오; 쉬운 기초 경우를 확인하는 것을 시도하십시오; 언어에 이미 포함 된 문자열에서 더 복잡한 문자열 (즉, 긴 문자열)을 만들기위한 규칙을 식별하십시오. 규칙을 재구성하거나 트릭을 알아내어 문법에 쉬운 내용으로 규칙을 설명 할 수 있습니다. 문법을 작성하고 몇 줄에 그것을 확인하십시오.
문법에서 쉽게 할 수있는 것은 무엇입니까? 언어 조합, 언어 연결, 기호 쌍 (예 :^k b^k), 문장 검색 등의 조합도 가능합니다.
전체 과제 설명 /이 숙제입니까? –
예, 방금 태그를 추가했습니다. 질문은 다음과 같은 언어를 생성하는 문법을 만들 것을 요구하고있었습니다. 나는 Michael이 도왔던 것을 이해하지 못하는 것들을 추가했다. – tehman