아핀 함수 값의 언어


10

쓰기 ˉ Nn¯ 의 진수 확장을위한 Nn (아니오 선도 0). 하자 a 하고 b를b 가진 정수, 수 > 0 . 의 배수의 진 확장의 언어 고려 플러스 상수를 :a>0a

M = { ¯ ax + bxN}

M={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯xN}

M은M 일반? 문맥이 없습니까?

( 아핀 함수 그래프의 언어 와 대비 )

나는 이것이 좋은 숙제 질문을 할 것이라고 생각하므로 힌트 나 두 개로 시작하고 질문을 해결하는 방법뿐만 아니라 사용할 기술을 결정하는 방법을 설명하는 답변이 좋습니다.


지금은 @vonbrand의 아이디어에 따라 특정 사례에 답변했습니다. (43)에 의해 자연수를 나눌 수의 소수점 표현을 받아들이는 DFA
헨드릭 얀

답변:


9

aa1qd( 10 q + d ) mod a b mod a b > a(10q+d)modabmodab>a


1
아주 좋은-내 것보다 훨씬 낫다!
David Lewis

8

정기적입니다. 어떤베이스에 일반화 2 진에서하자의 첫 작품,> 1.하자 M A는 , B는 문제의 언어합니다. a = 1, b = 0 인 경우Ma,b

M 1 , 0 = { 1 , 10 , 11 , 100 , 101 , . . }M1,0={1,10,11,100,101,...}

이것은 선행 0이없는 { 0 , 1 } 이상의 모든 문자열 이며, 정규적입니다 (정규 표현식을 구성하십시오).{0,1}

이제 어떤 위해 여전히 B 0 우리 얻을 M , 0 부터 M 1 , 0 변환 수행, 즉, a로 수치 적으로 승산하여 ˉ X¯ X를 각각 문자열 M , 0 . 이것은 고정 문자열 ˉ a 의 비트에 의존하는 x 의 시프트 및 덧셈 순서에 의해 비트 단위로 수행 될 수 있습니다 . 필요한 두 가지 변형은 다음과 같습니다.aMa,0M1,0x¯ax¯¯¯¯¯¯Ma,0xa¯

ˉ X ¯ 2 X 이는 ˉ X ˉ X 0x¯2x¯¯¯¯¯x¯x¯0

ˉ x ¯ 2 x + x엑스¯2 x + x¯¯¯¯¯¯¯¯¯¯¯¯¯¯

오른쪽에 0을 연결하면 규칙 성이 명확하게 유지됩니다. 따라서 우리는 두 번째 작업이 규칙 성을 유지한다는 것을 증명해야합니다. 이 작업을 수행하는 방법에 유한 상태 변환기 작동 함께 ˉ X 오른쪽에서 왼쪽으로. 가장 어려운 단계입니다. 의사 코드 프로그램과 상태를 사용하는 대신 유한 보조 메모리 (비트 변수와 같은)로 수행하는 것이 좋습니다. 메모리가 모든 입력에서 고정 크기이고 오른쪽에서 왼쪽으로 엄격하게 스캔하는 한 유한 상태 변환이며 규칙 성을 유지합니다.엑스¯

마지막으로 M a , 0 에서 M a , b 를 얻으려면 각 문자열 에 b 를 숫자로 추가해야 하지만 고정 수 b에 따라 비슷한 변환기 T b로 수행됩니다 .미디엄a , b미디엄a , 0

어떤베이스에서도 동일하게 수행하려면 d 에 의존 하는 변환기 S d 를 사용하여 해당베이스 의 단일 숫자 d 를 곱하는 방법을 추가로 보여줍니다 . 이를 통해 여러 자리 수를 곱할 수 있으며 여전히 일반 언어로 유지됩니다. 또는 d 에 의한 곱셈 은 반복 된 덧셈이라고 말함으로써 이것을 구체화 할 수 있습니다 .에스

힌트 만 원했습니다. 이러한 각 단계는 상당히 복잡한 정리 / 기술에 따라 다르므로 완전한 증거를 얻는 것이 추가 작업이 될 것입니다.


FA는 입력으로 ˉ x 를 얻지 못 하므로 작성하는 언어가 규칙적이라는 것을 어떻게 알지 못합니다. 참고이없는 모든 프로그램 FA로 사용 유한 메모리 대응을하는 것이 : 그것은 단지 갈 수있는 중요 한 번 하고 왼쪽에서 오른쪽으로 정확히 한 번 모든 입력 기호를 고려하여 입력 이상. x¯
Raphael

@Raphael 원하는 경우 오른쪽에서 왼쪽으로 갈 수 있습니다. 중요한 것은 일관됩니다. 다윗의 증거 스케치에서 결함을 찾을 수 없습니다. 트랜스 듀서를 호출하는 것은 내가 생각한 것보다 약간 덜 기초적이지만 유효 해 보입니다.
Gilles 'SO- 악마 중지'

@Gilles은 : 우선, 그는 어떻게 인터리브 곱셈에 의해 설명 할 수 없다 그리고 추가 B 결과를 한 번에 ; 그는 심지어별로 승산 감소 "시프트 및 가산의 시퀀스에 X ". 모든 단일 교대 및 추가는 괜찮지 만 시퀀스를 수행하는 방법은 무엇입니까? 둘째, 더 중요한 것은 ˉ x¯ a x + b계산 하는 변환기를 만드는 방법을 보여줍니다 . 즉시 M받아들이 는 FA를 제공 하지는 않습니다.abax x¯ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯ M. 예를 들어, 숫자를 곱하는 것은 쉽지만 인수 분해는 (전혀) 그렇지 않습니다. 따라서 최소한 추가 인수가 필요합니다.
Raphael

FSA를 구성하고 있지 않습니다. 나는 정규 ( M 1 , 0 )로 쉽게 표시된 세트로 시작한 다음 유한 문자열을 유한 한 일련의 연산으로 변환합니다. 각 문자열은 규칙 성을 유지합니다. 이를 위해서는 많은 패스 (트랜스 듀서)가 필요합니다. 그러나 트랜스 듀서 시퀀스와 각각의 구조는 ab 만 기반으로 미리 고정되어 있으므로 괜찮습니다 . 각 패스 (트랜스 듀서)는 규칙 성을 유지하므로 한 패스에 인터리브 할 필요가 없습니다. 네, "초등"이 아닙니다. 그러나 한 번에 FSA를 구성하는 것은 한 번의 통과로 끔찍하게 복잡합니다. M1,0ab
David Lewis

1
@Raphael-예, 매우 강력합니다. 사실, 많은 비정규 제품군도 유한 상태 변환기에서 닫힙니다. 또한 변환기를 축소 메커니즘으로 사용하여 비정규 언어의 "구조적"복잡성에 대한 전체 이론을 얻을 수 있습니다.
David Lewis

8

힌트 # 1 : 가장 작은 부호 비트 가 처음 나타날 가장 대중적인 문제인 "3으로 나눌 수있는 10 진수 / 이진수 표현을 인식하는 오토 마톤을 작성하십시오 ."

중급 질문 : { ¯ ax + bax + b 0x Z } 는 규칙적입니다.{ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯ax+b0xZ}

힌트 # 2 : 함수 ( n 10 n + d ) "모듈러스 a " 의 그래프 는 유한합니다. { 0 , , 9 } 에서 각 d 에 대해 계산할 수 있습니다. 이 숫자는 자릿수와 자동 언어의 언어입니다.(n10n+d)ad{0,,9}

힌트 # 3 : 이제 x Zx N으로 바꾸십시오 . 이것은 무엇을 변경합니까? 임시 오토 마톤을 작성 하는 대신 교차로 정규 언어가 안정적이라는 사실을 사용하십시오 .xZxN

# 4 힌트 : 지금 가정 a가 소수가 (그래서이다 Z가 / Z는 우리가 어디에 경우 여전히 있다는 것이다 필드)와 X Z . 이제 첫 번째 비트가 가장 중요한 비트 인 표현을 사용합니다 . 같은 방식으로 오토 마톤을 만들 수 있습니까?aZ/aZxZ

힌트 # 5 : 언어가 규칙적이라는 것을 증명하기 위해 항상 오토 마톤을 만들 필요는 없습니다. 이전 결과를 사용하여 M 이 정규 임을 증명할 수있는 방법은 무엇입니까? (가장 중요한 비트부터)M


이것이 적절하지 않다고 생각되면 언제든지 의견을 말하십시오.
jmad

힌트 # 1은 큰 단계입니다. 힌트 # 4에서는 실현하는 것이 중요합니다 { 2 , 5 }(10)가 다릅니다. 를 통해가는 Z의 에서 왜 안 숙박 : 우회 같은 느낌, 당신은 기호 문자 관리 할 필요가 N을 ? a{2,5}a10ZN
Gilles 'SO- 악한 중지'

@Gilles : 나는 말하고 싶었다 ¯ X + B X + B를ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯0 X Z 때문에 3 X + 1234 인식 지루하다. ax+b0xZ3x+1234
jmad

@Gilles : 힌트 # 1이 너무 차가워서 망칠 수 없다고 생각합니다. 힌트 # 4에 대해 아마 옳을 것입니다.
jmad

5

@vonbrand의 아이디어를 따르고 있습니다.

힌트 1 :

b = 0에 대해 먼저 풉니 다 . Myhill-Nerode 정리를 사용할 수 있습니다 .b=0

우리는 다음과 같은 관계를 정의 ˉ Xˉ Y를 :x y모드. 이것은 분명히 등가 관계입니다. 또한 숫자 d를 추가하면 ˉ xˉ y 가 나오기때문에 맞습니다.x¯y¯:xymodad10 x + d 10 y + d모드ˉ x d ˉ y d. 마지막으로 포화L, 이후x¯y¯10x+d10y+dmodax¯dy¯dLL 이 동등성 클래스 [ 0 ]시킵니다. 에는 한정된 수의 수업이있기 때문에Myhill-Nerode Theorem은 정규 수업을 가지고 있습니다. 연관된 FSA는 최소화하고있다상태.L[0]a

힌트 2 :

일반적인 경우를 해결하고 b = 0 경우에 의해 유도 된 오토 마톤을 재사용하십시오 .b=0

우리는 언어가 b = 0에 대해 규칙적이라는 것을 알고 있습니다 . 따라서 단순히 b = 0 언어 상태 FSA M 을 가져옵니다 . 이제 L에 대한 FSA를 구성합니다 . bk 자리 가 있다고 가정하십시오 . 그런 다음 FSA는 10 진 깊이의 나무처럼 분기합니다b=0aMb=0Lbk k의하고 k 자리숫자의 모든 경로를 포함합니다. a x + b 형식 아닌 숫자로 도달 할 수있는 모든 상태는 다른 방법으로 수락을 거부합니다. 마지막으로 FSA의 트리 부분을 오토 마톤 M 과 연결합니다kkax+bM에 의해 분할하여 나머지에 따른 .a


나는 기술을 이해하지만 세부 사항은 이해하지 못합니다. 힌트 1도 a = 1 사례를 다루지 않습니까? 또한, mod 10의 경우 10 개의 상태 ( a가 아님)를 예상 합니까? a=1a
헨드릭 얀

3

언어는 규칙적입니다.

힌트 : 아홉 캐스트


증거 아이디어

= 9Ba=9 < 9 ,b<9

0 에서 8 까지 레이블이 붙은 9 개의 상태로 오토 마톤을 만듭니다 . 0 은 초기 상태이고 하나의 최종 상태는 b 입니다. 상태 s 에서 숫자 d 로 상태로 전환 ( s + d )9080bsdm o d도 9 .(s+d)mod9

다른 값을 처리하기 위해 와 서로 소하는 10 ,a10

패킷 그룹 자리 일부 찾을 K가 되도록 나누기 10 K - 1 (예 테이크 K = 3 의 경우 = 37 때문에 999 = 27 × 37 ).ka10k1k=3a=37999=27×37

의 값을 처리하기 위해 그의 유일한 주요 요인 25 ,a25

끝 부분의 유한 자릿수에 관한 것입니다.

모든 값을 일반화하기 위해 와 B ,ab

노동 조합 및 일반 언어의 교차가 유한 한 언어 규칙적인 것을, 그리고 배수 것으로, 일반 있다는 사실 사용 12가 모두 때 정확히 배수 1a1a2a1 2는 서로 소됩니다.a2

편리한 기술을 사용하십시오. 세 가지 주요 기본 기술 (정규 표현, 유한 오토마타, 이론 이론적 속성)이 모두이 증명으로 표현됩니다.


자세한 증거

하자 = 2 P 5 Q의 '' 와 서로 소 (10) . 하자 M ' = { ¯a=2p5qaa10 'x + bxZax + b 0 } M = { ¯ 2 p 5 qM={ax+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯xZax+b0}x + bxZ2p5qx + b 0 } . 기초 산술에 의해, b 모듈로 a 와 동일한 수는 정확히 b 모듈로 a ' 와동일한 수이고 b 모듈로 2 p 5 q 이므로, M { ¯ xx b } = M M { ¯ xx b } . 정규 언어의 교차는 규칙적이므로M′′={2p5qx+b¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯xZ2p5qx+b0}babab2p5qM{x¯¯¯xb}=MM′′{x¯¯¯xb}{ ¯ xx b } 는 유한 한 (따라서 정규적인) 언어의 보완이기 때문에 규칙적입니다. M M 도 규칙적이라면 M { ¯ xx b } 는 규칙적입니다. 그리고 M은 이 유한 집합 해당 언어의 조합이기 때문에 그러므로 정기적입니다. 따라서 증명을 마치려면 M M 이 규칙적임을 증명하는 것으로 충분합니다.{x¯¯¯xb}MM′′M{x¯¯¯xb}MMM′′

M , 즉 숫자 modulo 2 p 5 q 로 시작합시다 . 그 소수 팽창에 정수 M " 마지막 특징 m X ( P , Q ) 상기의 복수의 추가 왼쪽 수단 숫자가 변경되기 때문에, 숫자 10 m X ( P , Q ) 의 배수 2 5 q . 따라서 0 * M = F 여기서M′′2p5qM′′max(p,q)10max(p,q)2p5q0M′′=Fℵ는 모든 숫자의 문자이고 F는 길이의 단어들의 유한 집합이다 m X ( P , Q ) , 및 M ' = ( * F ) ( ( { 0 } ) * ) 정기적 인 언어.Fmax(p,q)M′′=(F)(({0}))

우리는 이제 M ' , 즉 숫자 ' modulo a ' 로 바꾸고 여기서 a '10 과 coprime입니다 . 경우 ' = 1 다음, M은 ' 모든 소수의 원주민 확장 세트는, 즉 M ' = { 0 } ( ( { 0 } ) * ) , 일반 언어이다. 우리는 이제 ' > 1 이라고 가정 합니다 . 하자 케이 = ' -Maa10a=1MM={0}(({0}))a>11 . 페르마의 작은 정리, 10 a 11k=a1모드' , 말할 인 ' 나누기 10 K - 1 . 우리는다음과 같이 0 * M ' 을인식하는 결정 론적 유한 오토 마톤을 만듭니다.10a11modaa10k10M

  • 상태가 [ 0 , K - 1 ] × [ 0 , 10 K - 2 ] . 첫 번째 부분은 숫자 위치를 나타내고 두 번째 부분은 숫자 모듈로 10 k - 1을 나타냅니다 .[0,k1]×[0,10k2]10k1
  • 초기 상태는 ( 0 , 0 )(0,0) 입니다.
  • d ( i , u ) 에서 ( j , v ) 로 레이블이 지정된 d가 있습니다. iff v d 10 i +d(i,u)(j,v) u모드10 k - 1 j i +vd10i+umod10k1 1모드케이ji+1modk .
  • 상태 ( i , u ) 는 최종 iff u b(i,u)모드a ' ( a ' 10 k - 1로 나눕니다).ubmodaa10k1

상태 ( , ) 단어에서 도달 ¯ X 만족 I | ¯ x |(i,u)x¯¯¯모드k u xi|x¯¯¯|modk모드10 k - 1 . 이것은 오토 마톤의 전환에 따라 단어를 유도함으로써 증명 될 수 있습니다. 10 k1 이라는 사실을 사용하여 전환이 계산됩니다.uxmod10k1모드10 k - 1 . 이와 같이 오토 마톤 폼의 개수의 소수 확장 (허용 초기 제로) 인식 U + Y (10) K U를 B를모드a ' ; 10 k 부터1모드a , 오토 마톤은 b 모듈로 a ''와 동일한 숫자의 10 진수 확장을 인식하여초기 0을 허용합니다. 0 * M ' . 따라서이 언어는 규칙적으로 입증되었습니다. 최종적으로, M ' = ( 0 * M ' ) ( ( { 0 } ) * ) 일반 언어이다.

10 이외의 밑으로 일반화하려면 위의 25를 밑의 모든 주요 요소로 대체하십시오 .

공식적인 증거

좋아하는 정리 증명에서 독자를위한 연습으로 남겨 두십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.