Zovseobecnenie Eulerovej a Fermatovej vety

25. 8. 2021 Ing. Róbert Polák Matematika

Úvod

Publikácia sa venuje zovšeobecneniu Eulerovej a Fermatovej vety s použitím funkcie GCD čiže najväčší spoločný deliteľ. Naviac, poskytujem riešenie modulárnej aritmetiky, keď máme zadané ab mod n, pričom b a n môžu nadobúdať obrovské hodnoty.

Na riešenie problému je využitá redukcia exponentu podľa Eulerovej funkcie. Ako návod poskytujem kód v jazyku C#, ktorý je upravený tak, aby zvládal obrovské čísla a poskytuje všeobecnejší pohľad na Eulera a Fermata.

Redukcia exponentu v modulárnej aritmetike

V modulárnej aritmetike často potrebujeme vypočítať ab mod n, kde a, b a n sú celé čísla. Ak sú tieto hodnoty veľké, priamy výpočet je nepraktický. Tu prichádzajú na rad Fermatova a Eulerova veta, ktoré nám umožňujú redukovať veľkosť exponentu.

Rovnica
Redukcia exponentu pri modulárnej aritmetike

Eulerova veta

Ak a a n sú kladné celé čísla a gcd(a, n) = 1 (sú nesúdeliteľné), potom:

aφ(n) ≡ 1 (mod n)

kde φ(n) je Eulerova funkcia, ktorá počíta počet čísel od 1 do n, ktoré sú nesúdeliteľné s n.

Fermatova malá veta

Špeciálnym prípadom Eulerovej vety je Fermatova malá veta. Ak p je prvočíslo a a nie je deliteľné číslom p, potom:

ap-1 ≡ 1 (mod p)

Zovšeobecnenie pre prípad gcd(a, n) > 1

Klasické verzie týchto viet vyžadujú, aby a a n boli nesúdeliteľné. V našom zovšeobecnení sa tohto obmedzenia zbavíme.

Diagram
Vizualizácia algoritmu redukcie

Algoritmus redukcie exponentu

Nasledujúci algoritmus rieši problém ab mod n aj pre prípady, keď gcd(a, n) > 1:

  1. Nájdi d = gcd(a, n)
  2. Ak d = 1, použi štandardnú Eulerovu vetu
  3. Ak d > 1:
    • Ak b < k, kde k je najmenšie celé číslo také, že dk delí n, vypočítaj priamo
    • Inak, použi redukciu exponentu na základe novej vety

Hlavná veta

Pre kladné celé čísla a, b, n, kde d = gcd(a, n) a d > 1, platí:

Ak b ≥ k, kde k je najmenšie celé číslo také, že dk delí n, potom ab ≡ 0 (mod n)

Ak b < k, použijeme vzorec: ab ≡ (a/d)b × db (mod n)

Implementácia algoritmu

Zdrojový kód pre implementáciu algoritmu je dostupný v mojom GitHub repozitári. Algoritmus je účinný aj pre obrovské hodnoty a, b a n.

Tento zovšeobecnený prístup má praktické aplikácie v kryptografii, teórii čísel a ďalších oblastiach matematiky, kde sa pracuje s modulárnou aritmetikou veľkých čísel.

Záver

Zovšeobecnenie Eulerovej a Fermatovej vety predstavuje významný krok v oblasti teórie čísel a poskytuje efektívny nástroj pre prácu s modulárnou aritmetikou. Algoritmus redukcie exponentu umožňuje rýchly výpočet aj pre extrémne veľké hodnoty vstupných parametrov.