Knuth의 선형 시간 곱셈 알고리즘이 왜 "계산"되지 않습니까?


13

곱셈 알고리즘에 대한 wikipedia 페이지에는 Donald Knuth의 흥미로운 내용이 언급 되어 있습니다. 기본적으로 푸리에 변환 곱셈을 미리 계산 된 로그 크기 곱셈 표와 결합합니다. 선형 시간으로 실행됩니다.

이 기사는이 알고리즘처럼 작동하여 "진정한"곱셈 알고리즘으로 간주되지 않습니다. 더 중요한 것은 곱셈이 심지어 O(n lg n)시간 내에 이루어질 수 있는지에 대한 열린 질문입니다 .

이 알고리즘의 어떤 세부 사항이 "진정한"곱셈 알고리즘으로 간주되지 않습니까?

내 추측은 :

  • 테이블을 사전 계산하는 데 선형 시간보다 오래 걸립니다. 반면에, 그것은 여전히 n lg n인상적인 것처럼 보이기 때문에 여전히 제 시간에 이루어질 수 있습니다 .
  • 랜덤 액세스는 어떻게 든 허용되지 않습니다. 그렇다면 왜 다른 알고리즘이 해시 테이블 및 포인터와 같은 것을 사용할 수 있습니까?
  • 단일 명령어에서 256 비트 곱셈을 수행하는 256 비트 시스템을 가지고 있고 2 ^ 256 개 이상의 요소를 가질 때까지이 알고리즘에 아무런 의미가없는 것처럼 기계의 워드 크기를 늘리면 어떻게 든 스케일이 잘못됩니다. 다른 한편으로, 우리는 노동 조합 찾기에서 역 애커 만 요인을 귀찮게합니다.
  • "선형 시간 곱셈 알고리즘이 있습니까?" 의문은 비밀리에 약간 약한 기계라는 측면에서 힌트를 주지만 이것은 단지 암시됩니다.

답변:


16

O(logn)nO(nlognloglogn)

CCΩ(nlogn)Ω(nlogn)

큰 정수의 실제 곱셈에 대한 "올바른"모델에 대한 설명은 Fürer 's recent paper를 확인하십시오 . 그의 결론은 "실제적인"Schönhage-Strassen 알고리즘을 선호합니다 (두 가지가 있고 다른 하나는 비트 복잡성이 더 좋지만 실제로는 더 나빠집니다. Fürer는이 문제를 논문에서 다룹니다).


2
설명해 주셔서 감사합니다. TAOCP의 사본이 없으므로 위키 기사의 내용 만 읽으십시오 (문제를 해결하기 위해 이미 편집 한 것을 볼 수 있습니다).
Craig Gidney 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.