방금 공식 lang 및 automata 이론에 대해 배우기 시작했습니다. 최근에 정규 표현식에 대해 배웠으므로 복잡한 기호를 모르므로 기본 기호.RE : 정확하게 두 개의 0을 포함하는 {0, 1}을 초과하는 이상한 길이의 문자열
질문은 다음 언어에 대한 정규 표현식을 0
을 정확히 포함하는 모든 홀수 길이 문자열의 집합 인 {0, 1}
을 작성합니다.
, 그것은해야한다 :
(0+1)[(0+1)(0+1)]*
(|
(또는) 저는 믿습니다, 우리가 +
로 배운 +
은 동일) 그러나 정확하게 두 개의 0
을 가지고 있다고 생각하면 엉망이됩니다. # 0
의 숫자가 2
으로 제한되어 있기 때문에 *
을 1
과 함께 사용할 수 있음을 알 수 있습니다. 그러나 내가 (11)*
을 수행하면 안에 0
의 순열을 가져올 수 없습니다. (예 : 을 (11)*
으로 가져올 수 없음).
내가 알고있는 무엇 :
- 만
1
의가에 홀수 길이를 추가하는 두0
의 홀수 길이를 만들기 위해 - 방법을 사용되는 정규 표현식에서
*
- 입니다 사용할 수 있습니다 짝수 길이는 짝수 길이가
*
일 수 있기 때문에*
을 사용해서는 안되며, 따라서 홀수 길이는 두 개의 홀수 = 짝수이므로*
을 사용해서는 안됩니다. 가능 힌트 나 답을
, 사용하십시오 0
, 1
, +
/|
, *
, (
, )
만. 내가 이해할 수없는 다른 표현들.
이 질문은 아마도 더 나은 http://cs.stackexchange.com/에 요청합니다. –
이 질문은 http://cs.stackexchange.com/questions/14493/regex-for-all-odd-length-string-that-contains-exactly-2-0s-html에 크로스 포스팅 되었기 때문에 주제와 관련이없는 것처럼 보입니다. with-language-0-1 – Flexo
@Flexo는 해당 질문을 삭제하거나 마징해서는 안됩니까? –