분산에 가장 효율적인 알고리즘은 무엇입니까? aaabbbaaabbbaaabbbO(mlogmloglogm)O(mlog⁡mlog⁡log⁡m)O(m\log m\log\log m)mmmmax{a,b}max{a,b}\max\{a,b\}Ω(mlogmloglogm)Ω(mlog⁡mlog⁡log⁡m)\Omega(m\log m\log\log

a

b

a

b

a

b

O(mlogmloglogm)

m

max{a,b}

Ω(mlogmloglogm)

이 문제의 하한?

고마워요, 그리고 이것이 순진한 질문이라면 죄송합니다.



답변

내 의견을 답으로 정리 : 나눗셈은 (사소한) 나눗셈으로 환원 할 수 있고 나눗셈은 (사소하게) 뉴턴의 방법과 같은 접근법을 통해 곱셈으로 나눌 수 있기 때문에 문제는 정수 곱셈과 같은 시간 복잡성을 가져야합니다. AFAIK, 사소한 선형보다 곱셈에 대한 알려진 하한이 없기 때문에 문제에 대해서도 마찬가지입니다. 특히 곱셈은 (본질적으로) 알고리즘, 하한에 대한 희망 은 거의 헛된 것입니다.

O(nlognlogn)

nlognloglogn

나누기가 곱셈에 대한 복잡성을 정확하게 감소시키는 이유는 내가 이해하는 바와 같이 뉴턴의 방법이 서로 다른 확대 크기의 곱셈을 수행하기 때문입니다. 즉, 복잡도 를 사용한 곱셈 알고리즘이 있으면이 곱셈 알고리즘을 중간 단계로 사용하는 나눗셈 알고리즘의 복잡성이 — 토론중인 모든 복잡한 클래스의 경우 입니다.

Θ(f(n))

Θ(k=0lgnf(n2k))

Θ(f(n))


답변

나는 3,7 등으로 끝나는 일부 숫자에 대한 Vedic 유형의 해킹이 있다고 생각합니다.

그러나 일반적으로 가장 빠른 분할 알고리즘이 표준으로 보입니다.

내가 보지 않고 아는 가장 좋은 것은 Knuth의 Seminumerical 방법의 알고리즘 D입니다 … 그래도 정확성을 확인하지는 않았습니다. 곱하기 복잡성을 고려하지 않고 m과 n이 피제수와 제수 인 O (mn-n ^ 2) 정도에서 실행됩니다.

그러나 귀하의 질문이 결정 문제에만 관련되어 있기 때문에 하한은 놀랍도록 낮을 수 있습니다.


답변