쓰기 ˉ N0
). 하자 을
M = { ¯ ax + b ∣x∈N}
가 M은
( 아핀 함수 그래프의 언어 와 대비 )
나는 이것이 좋은 숙제 질문을 할 것이라고 생각하므로 힌트 나 두 개로 시작하고 질문을 해결하는 방법뿐만 아니라 사용할 기술을 결정하는 방법을 설명하는 답변이 좋습니다.
쓰기 ˉ N0
). 하자 을
M = { ¯ ax + b ∣x∈N}
가 M은
( 아핀 함수 그래프의 언어 와 대비 )
나는 이것이 좋은 숙제 질문을 할 것이라고 생각하므로 힌트 나 두 개로 시작하고 질문을 해결하는 방법뿐만 아니라 사용할 기술을 결정하는 방법을 설명하는 답변이 좋습니다.
답변:
정기적입니다. 어떤베이스에 일반화 2 진에서하자의 첫 작품,> 1.하자 M A는 , B는 문제의 언어합니다. a = 1, b = 0 인 경우
M 1 , 0 = { 1 , 10 , 11 , 100 , 101 , … . . }
이것은 선행 0이없는 { 0 , 1 } 이상의 모든 문자열 이며, 정규적입니다 (정규 표현식을 구성하십시오).
이제 어떤 위해 여전히 B 0 우리 얻을 M , 0 부터 M 1 , 0 변환 수행, 즉, a로 수치 적으로 승산하여 ˉ X → ¯ X를 각각 문자열 M , 0 . 이것은 고정 문자열 ˉ a 의 비트에 의존하는 x 의 시프트 및 덧셈 순서에 의해 비트 단위로 수행 될 수 있습니다 . 필요한 두 가지 변형은 다음과 같습니다.
ˉ X → ¯ 2 X 이는 ˉ X → ˉ X 0
과
ˉ x → ¯ 2 x + x
오른쪽에 0을 연결하면 규칙 성이 명확하게 유지됩니다. 따라서 우리는 두 번째 작업이 규칙 성을 유지한다는 것을 증명해야합니다. 이 작업을 수행하는 방법에 유한 상태 변환기 작동 함께 ˉ X 오른쪽에서 왼쪽으로. 가장 어려운 단계입니다. 의사 코드 프로그램과 상태를 사용하는 대신 유한 보조 메모리 (비트 변수와 같은)로 수행하는 것이 좋습니다. 메모리가 모든 입력에서 고정 크기이고 오른쪽에서 왼쪽으로 엄격하게 스캔하는 한 유한 상태 변환이며 규칙 성을 유지합니다.
마지막으로 M a , 0 에서 M a , b 를 얻으려면 각 문자열 에 b 를 숫자로 추가해야 하지만 고정 수 b에 따라 비슷한 변환기 T b로 수행됩니다 .
어떤베이스에서도 동일하게 수행하려면 d 에 의존 하는 변환기 S d 를 사용하여 해당베이스 의 단일 숫자 d 를 곱하는 방법을 추가로 보여줍니다 . 이를 통해 여러 자리 수를 곱할 수 있으며 여전히 일반 언어로 유지됩니다. 또는 d 에 의한 곱셈 은 반복 된 덧셈이라고 말함으로써 이것을 구체화 할 수 있습니다 .
힌트 만 원했습니다. 이러한 각 단계는 상당히 복잡한 정리 / 기술에 따라 다르므로 완전한 증거를 얻는 것이 추가 작업이 될 것입니다.
힌트 # 1 : 가장 작은 부호 비트 가 처음 나타날 때 가장 대중적인 문제인 "3으로 나눌 수있는 10 진수 / 이진수 표현을 인식하는 오토 마톤을 작성하십시오 ."
중급 질문 : { ¯ ax + b ∣ax + b ≥ 0x ∈ Z } 는 규칙적입니다.
힌트 # 2 : 함수 ( n ↦ 10 n + d ) "모듈러스 a " 의 그래프 는 유한합니다. { 0 , … , 9 } 에서 각 d 에 대해 계산할 수 있습니다. 이 숫자는 자릿수와 자동 언어의 언어입니다.
힌트 # 3 : 이제 x ∈ Z 를 x ∈ N으로 바꾸십시오 . 이것은 무엇을 변경합니까? 임시 오토 마톤을 작성 하는 대신 교차로 정규 언어가 안정적이라는 사실을 사용하십시오 .
# 4 힌트 : 지금 가정 a가 소수가 (그래서이다 Z가 / Z는 우리가 어디에 경우 여전히 있다는 것이다 필드)와 X ∈ Z . 이제 첫 번째 비트가 가장 중요한 비트 인 표현을 사용합니다 . 같은 방식으로 오토 마톤을 만들 수 있습니까?
힌트 # 5 : 언어가 규칙적이라는 것을 증명하기 위해 항상 오토 마톤을 만들 필요는 없습니다. 이전 결과를 사용하여 M 이 정규 임을 증명할 수있는 방법은 무엇입니까? (가장 중요한 비트부터)
@vonbrand의 아이디어를 따르고 있습니다.
힌트 1 :
b = 0에 대해 먼저 풉니 다 . Myhill-Nerode 정리를 사용할 수 있습니다 .
우리는 다음과 같은 관계를 정의 ˉ X ≈ ˉ Y를 :⟺x ≡ y모드. 이것은 분명히 등가 관계입니다. 또한 숫자 d를 추가하면 ˉ x ≈ ˉ y 가 나오기때문에 맞습니다.
x¯≈y¯:⟺x≡ymoda d ⟺10 x + d ≡ 10 y + d모드ㅏ⟺ˉ x d≈ ˉ y d. 마지막으로 포화L, 이후x¯≈y¯⟺10x+d≡10y+dmoda⟺x¯d≈y¯d L L 이 동등성 클래스 [ 0 ]시킵니다. ≈ 에는 한정된 수의 수업이있기 때문에Myhill-Nerode Theorem은 정규 수업을 가지고 있습니다. 연관된 FSA는 최소화하고있다상태.L [0] ≈ a
힌트 2 :
일반적인 경우를 해결하고 b = 0 경우에 의해 유도 된 오토 마톤을 재사용하십시오 .
우리는 언어가 b = 0에 대해 규칙적이라는 것을 알고 있습니다 . 따라서 단순히 b = 0 언어 의 상태 FSA M 을 가져옵니다 . 이제 L에 대한 FSA를 구성합니다 . b 에 k 자리 가 있다고 가정하십시오 . 그런 다음 FSA는 10 진 깊이의 나무처럼 분기합니다
b=0 a M b=0 L b k k의하고 k 자리숫자의 모든 경로를 포함합니다. a x + b 형식 이 아닌 숫자로 도달 할 수있는 모든 상태는 다른 방법으로 수락을 거부합니다. 마지막으로 FSA의 트리 부분을 오토 마톤 M 과 연결합니다k k ax+b M 에 의해 분할하여 나머지에 따른 .a
언어는 규칙적입니다.
힌트 : 아홉 캐스트
용 = 9 및 B
0 에서 8 까지 레이블이 붙은 9 개의 상태로 오토 마톤을 만듭니다 . 0 은 초기 상태이고 하나의 최종 상태는 b 입니다. 상태 s 에서 숫자 d 로 상태로 전환 ( s + d )
9 0 8 0 b s d m o d도 9 .(s+d)mod9
다른 값을 처리하기 위해 와 서로 소하는 10 ,
패킷 그룹 자리 일부 찾을 K가 되도록 나누기 10 K - 1 (예 테이크 K = 3 의 경우 = 37 때문에 999 = 27 × 37 ).
k a 10k−1 k=3 a=37 999=27×37
의 값을 처리하기 위해 그의 유일한 주요 요인 2 와 5 ,
끝 부분의 유한 자릿수에 관한 것입니다.
모든 값을 일반화하기 위해 와 B ,
노동 조합 및 일반 언어의 교차가 유한 한 언어 규칙적인 것을, 그리고 배수 것으로, 일반 있다는 사실 사용 1 ⋅ 2가 모두 때 정확히 배수 1 과 을
a1⋅a2 a1 2는 서로 소됩니다.a2
편리한 기술을 사용하십시오. 세 가지 주요 기본 기술 (정규 표현, 유한 오토마타, 이론 이론적 속성)이 모두이 증명으로 표현됩니다.
하자 = 2 P 5 Q의 을 ' 로 ' 와 서로 소 (10) . 하자 M ' = { ¯
M ″ , 즉 숫자 modulo 2 p 5 q 로 시작합시다 . 그 소수 팽창에 정수 M " 마지막 특징 m X ( P , Q ) 상기의 복수의 추가 왼쪽 수단 숫자가 변경되기 때문에, 숫자 10 m X ( P , Q ) 의 배수 2 쪽 5 q . 따라서 0 * M ″ = ℵ ∗ F 여기서
우리는 이제 M ' , 즉 숫자 ' modulo a ' 로 바꾸고 여기서 a ' 는 10 과 coprime입니다 . 경우 ' = 1 다음, M은 ' 모든 소수의 원주민 확장 세트는, 즉 M ' = { 0 } ∪ ( ( ℵ ∖ { 0 } ) ℵ * ) , 일반 언어이다. 우리는 이제 ' > 1 이라고 가정 합니다 . 하자 케이 = ' -
상태 ( 나 , 유 ) 단어에서 도달 ¯ X 만족 I ≡ | ¯ x |
10 이외의 밑으로 일반화하려면 위의 2 와 5를 밑의 모든 주요 요소로 대체하십시오 .
좋아하는 정리 증명에서 독자를위한 연습으로 남겨 두십시오.