정규 표현 식 - 바 이 너 리 가 3 으로 정리 되 었 는 지 판단 합 니 다.

1785 단어
reg = /^(0+|0*1((10*1)|(01*0))*10*)$/ 그 중
  • 0+ 문자열 이 모두 0
  • 일 수 있 음 을 나타 낸다.
  • 첫 번 째 0* 는 문자열 이 0 으로 시작 할 수 있 음 을 나타 낸다
  • 핵심 적 인 문형 은 다음 과 같다. 1((10*1)|(01*0))*10*) 원 리 는 다음 과 같다. 하나의 이 진수 뒤에 '0' 을 추가 하면 이 수 곱 하기 2 에 해당 하고 하나의 이 진수 뒤에 '1' 을 추가 하면 이 수 곱 하기 2 더하기 1 에 해당 한다.세 개의 상 태 를 설정 하 는데 각각 0, 1, 2 라 고 하 는데 이들 은 현재 의 수 를 3 으로 나 누 어 얻 은 나머지 를 나타 낸다.다음 과 같은 몇 가지 가능성 이 있다.
  • 0@0 => 0     0   0 ,    0
    0@1 => 0     0   1 ,    1
    1@0 => 2     1   0 ,    2
    1@1 => 0     1   1 ,    0
    2@0 => 1     2   0 ,    1
    2@1 => 2     2   1 ,    2
    

    상태 0 은 우리 의 초기 상태 이자 최종 상태 이다.우리 의 자동 동 기 는 다 되 었 다.지금 만약 이 진수 10010 이 들어온다 면.상태 0 에서 출발 하여 기 계 는 먼저 '1' 을 읽 었 기 때문에 현재 위 치 는 상태 1 로 옮 겨 현재 이 모델 이 3 여 1 임 을 나타 낸다.그 다음 에 시스템 은 '0' 을 읽 었 다. 우 리 는 상태 2 에 이 르 러 이 진수 '10' 이 3 에서 나머지 2 를 나 누 었 음 을 나타 낸다.다음 단계 에 우 리 는 상태 1 로 돌아 가 '100' 을 3 여 1 로 나 누 는 것 을 나타 낸다.이후 에 우 리 는 1001 이 3 으로 나 눌 수 있다 는 것 을 알 게 되 었 다.마지막 으로 우 리 는 0, '1001' 의 두 배 를 읽 었 다. 물론 3 으로 나 눌 수 있 고 우 리 는 여전히 제자리 에 머 물 렀 다.우 리 는 2 진수 10010 은 3 으로 나 눌 수 있다 는 결론 을 얻 었 다.유한 상태 자동 동 기 는 정규 표현 식 으로 바 뀔 수 있다.위의 이 자동 기 는 전환 하기 가 매우 쉽다.우 리 는 먼저 자연 언어 로 서술 해 볼 수 있다.우선 각 이 진수 1 위 는 '1' 이 어야 한다.상태 1 에 도달 한 후, 우 리 는 마음대로, 임의로 여러 번 상태 1 주 위 를 돌 며, 최종 적 으로 상태 1 로 돌아 갈 수 있다.마지막 에 이 르 러 우 리 는 '1' 을 하나 더 읽 고 상태 0 으로 돌아 간 후에 몇 개의 '0' 을 마음대로 읽 어도 된다.현재 문 제 는 다음 과 같이 분 해 됩 니 다. 우 리 는 어떻게 정규 표현 식 으로 '상태 1 에서 출발 하여 마음대로 걸 어서 최종 상태 1 로 돌아 갑 니까?' 라 고 표현 합 니까?이 예 에서 이것 은 아주 잘 설명 되 어 있 습 니 다. 이것 은 문자열 '1000. 0.001' 과 '0111.10' 의 임 의 조합 일 수 있 습 니 다.이 물건 들 을 정규 표현 식 으로 써 라. 바로 우리 가 방금 그 신비 한 식 이다. 1((10*1)|(01*0))*10*참고

    좋은 웹페이지 즐겨찾기