AC0에서 c로 c를 나누는 c는 무엇입니까?


11

입력이 이진 x 이고 을 출력해야 한다고 가정합니다 x/c. 여기서 c 는 일정한 정수입니다. 만약 c 가 2의 거듭 제곱 이라면 이것은 쉬프트 일 뿐이지 만 다른 숫자는 어떻습니까? 우리는 모든 대해 일정한 깊이 회로로 그것을 할 수 있습니까 c? 무엇에 대한 c=3 ?

xmodc

답변:


16

이진수의 덧셈과 뺄셈은AC0 있습니다.

어떤 일정한 번호를 들어 , 이다 의한 분할에 환원성 ( ) : x mod c A C 0 c x / c x mod c = x ( c  번 x / c + + x / c )cxmodcAC0cx/c

xmodc=x(x/c++x/cc times)

2 의 거듭 제곱이 아닌 c의 경우\ mathsf {AC ^ 0}에 대해 어려운 것으로 알려져 있습니다. 따라서 \ lfloor x / c \ rfloor2 의 거듭 제곱이 아닌 c에 대해 \ mathsf {AC ^ 0} 에 대해 어렵습니다 .A C 0 c 2 x / c A C 0 c 2xmodcAC0c2x/cAC0c2

주석에 의해 에밀 바와 같이 홀수 프라임 쉽게 감소가 에서 (즉, 와 )에 와 이진 입력 : 배수 인 입력 비트 만 사용하고 FLT ( )를 사용합니다. M O D c icMODcx i{ 0 , 1 } x mod c p - 1 2 ( p - 1 ) i mod p = 1iximodcxi{0,1}xmodcp12(p1)imodp=1


동일한 인수는 적용 2의 누승이 아닌c
에밀 예라 벡

4
그 기타를위한 AC ^ 0이 아닌 보여 쉽게 : 예를 들어, 우리가 추측 할 수 홀수 소수, 그리고 당신은 모든 사용하여에 MOD_p을 줄일 수 있습니다 번째 비트를 . 또는 Barrington-Thérien 분류를 적용 할 수 있습니다.이 언어는 정규 언어이며 구문 단일체는 사소한 그룹입니다. c c = p ( p 1 )xmodccc=p(p1)
Emil Jeřábek

@ Emil Jerabek : 고마워, 이것은 내가 필요로했던 도움이었다 :)
daniello
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.