Modulo un mod n
modulo un mod n
Rezultatul acestei operații este restul diviziunii întregi, de exemplu, dacă împărțim 11 cu 3, numerele întregi vom obține 3, (ca 3 * 3 = 9), reziduul este 2, acest număr va fi rezultatul modulo:
11/3 = 3 + 2 întreg în reziduu. Ie 11mod 2 = 3 (11-3 * 3 = 2)
În C, operația de a lua modulo reziduurilor este notat% - modulo.
modulo multiplicare (a * b) mod n
Să presupunem că avem nevoie pentru a efectua o multiplicare a formei: res = (a * b) mod n, unde 0 <= a
mod n - operație de constatare a reziduurilor de modulo sau modulul.
Dacă sunteți în prezent „cap“, este necesar să se multiplice o cu b. apoi împărțit n și ia restul. Această abordare are dreptul de a exista, dar este extrem de cost la numărul de operațiuni și destul de complex pentru a pune în aplicare.
exponentiation modular (a ^ k) mod n
Să presupunem că avem un anumit număr de o. care urmează să fie ridicat la puterea k modulo n. Puteți multiplica pur și simplu o singură k ori, apoi se împarte la n și ia restul. Dar cantități mari de numere este destul de dificil și de funcționare lentă.
(Mod 511) = 28153056843 (mod 511) = 359,
exponentiation rapidă
Ideea este de a reprezenta exponentiere ca cvadratura și înmulțiri pe o bază.
De exemplu, operațiune de reducere a modulo trebuie efectuată după fiecare etapă intermediară pentru a evita orice depășire.
algoritmi exponentiation modulare
Compararea și clasele de reziduuri de „Quantum“