2010-04-27 4 views
5

짝수의 0과 짝수의 문자열이있는 0과 1의 문자열에 대한 정규식은 무엇입니까?짝수의 0과 1이있는 문자열의 정규식

나는 (1*01*01*)*(0*10*10*)*과 같은 것을 가지고 있습니다.

잘 보입니까?

+2

그것은 나 일 수 있지만 그 질문은 완전히 나에게 이해가 가지 않습니다. 어쩌면 문구를 다시 말할까요? –

+0

이봐, 내 말을 들어라./.... 나는 내가 한 일이 옳은지 아닌지를 묻고있다. 그러면 도움이되고 싶지 않다면 ..... ..... – Kevinniceguy

+8

"좋은 사람": 무례한 반응 필요 없음 ** 귀하의 질문이 명확하지 않다는 것을 지적하여 도움을 주려는 ** 사람에게. (그리고 그게 "좋다"면 "Kevinmeanguy"를 만나기를 싫어한다 ...) –

답변

6

1100은 언어이지만 귀하의 표현과 일치하지 않습니다. 10101이 언어가 아니기 때문에 이지만 표현식이 일치합니다.

DFA를 그리기 시작하는 것이 좋습니다. 이 언어를 인식하는 매우 명백한 4- 상태 머신이 있습니다. 빈 문자열은 언어에 있으므로 시작 상태가 수락 상태입니다. 다른 수락 국이 있습니까? 수락하지 않는 상태 S의 경우, 시작 -> S에서 접두어가 붙는 이 있습니까? 수락 상태를 벗어나지 않으면 서 S에서 S로 루프하는 방법이 있습니까? S에서 수락 상태로 돌아 오는 접미사가 있습니까?

1

주어진 정규 표현식의 반례는 01010101입니다.

당신이 특정 문제에 대한 정규 표현식을 작성하는 것은 (당신이 보통 정규 표현식 언어에 일부 비정규직 확장을 사용하지 않은 경우) 가능하지 않을 것을 알 수 있습니다.

아래의 Jim Lewis가 언급했듯이 이것은 실제로 해결할 수있는 문제입니다.

+0

0의 짝수와 1의 짝수를 가진 {0,1}의 모든 문자열 세트는 가장 확실하게 규칙적입니다. 4 개주의 DFA 만 있으면 충분합니다. –

+0

@Jim Lewis : 고맙습니다. 더 깊은 고려에서 당신은 옳습니다. –

+0

나는 왜 사람들이 나중에 그들이 왜 동의하지 않는 것을 파헤 치는지 왜 궁금해했다. 나는 그것을 삭제하고 대답을 바꾸는 경향이 있습니다. 삼진은 최종 답변에 아무런 가치를 부여하지 않으며, 어쨌든 누구든지 관심이 있다면 우리의 "교육"은 역사에서 볼 수 있습니다. 꽤 많은 사람들이 그걸 보았 기 때문에 호기심이 생겼습니다. – paxdiablo

11

음, 이것은 아마도 숙제이지만, 도대체 :

^(00|11|(01|10)(00|11)*(01|10))*$ 

편집 : 간단하게!

+1

+1 : 좋은 직장. 누구나 인터랙티브하게 이것을 시도하고 싶다면 http://www.gskinner.com/RegExr/을 시도하십시오 – brainjam

+0

@ 트로프린 : JFLAP을 사용 했습니까? 나는 해냈어 정확히 같은 대답을 주었다. – tiftik

+2

@tiftik, haha ​​no, 나는 메모장을 사용했다. 하지만 DFSM으로 시작해서 줄 였으므로 놀랄 일이 아닙니다. – tloflin

-1
@tmp = $str =~ /0/g; 

print scalar @tmp % 2 == 0 ? 'even' : 'odd'; 
+7

이것은 정규식이 아닙니다. 이것은 프로그램입니다. – tiftik

관련 문제