정규 표현 식 - 바 이 너 리 가 3 으로 정리 되 었 는 지 판단 합 니 다.
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*
참고
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.