Puncte:0

Complexitatea testului de primalitate Rabin-Miller

drapel lk

Mă gândeam la complexitatea testului de primalitate Rabin-Miller. Pe wikipedia găsesc O(k log3n), dar nu există nicio explicație. Ideea mea era prea simplă. Pentru a vedea dacă n este prim, avem k încercări și cu fiecare încercare verificăm dacă primul element b este 1, altfel căutăm -1 în secvența b. Aici b = a^u mod n și n-1 = 2^l * u, u impar, cu (b,b^2^1,b^2^2,b^2^3,...,b^ 2^(l-1)). Deci, presupun că un scenariu mai rău, calculăm până la ultimul exponent, chiar înainte de a ajunge la fermats-primetest real. Deci, dacă putem reprezenta n-1 = 2^lu cu u impar, atunci avem nevoie în total de k*(n-1)/(2u) pași.

Puncte:1
drapel sa

introduceți descrierea imaginii aici

Prin utilizarea expansiunii binare a unui exponent $t$ și pătrarea repetată puteți calcula $x^t$ modulo $n$ cu $O(\log n)$ modulo $n$ operatii de inmultire.

Și fiecare modulo $n$ înmulțirea și împărțirea vor lua $O(\log^2 n)$ operații cu numere întregi. Deci asta face $O(\log^3 n)$ operații cu numere întregi.

Odata ce ai $x^t$ modulo $n,$ atunci $x^{2t},x^{4t},x^{2^st}$ modulo $n$ poate fi obtinut prin $s\leq \log_2 n$ iterații de modulo de pătrat repetat $n$.

Toate celelalte operațiuni sunt de complexitate mai mică.

Dacă repeți $k$ ori pentru a reduce probabilitatea de eroare, obțineți $O(k \log^3 n).$

killertoge avatar
drapel lk
Înțeleg că prin expansiune binară aș avea nevoie de operații O(log n) pentru a obține x^n. Deoarece suntem modulo n, fiecare înmulțire costă O(log^2n), ok!. Facem k încercări O(k log^3 n), ok!. Dar nu mergem până la a^(n-2), deoarece o ultimă pătrare ar fi testul prim fermats. Deci este O(k log^2 n log (n-2))?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.