Eulerova metoda rozkladu na rozklad je technika rozkladu čísla tak, že je zapsáno jako součet dvou čtverců dvěma různými způsoby. Číslo lze například zapsat jako nebo jako a Eulerova metoda dává rozšíření .
Myšlenku, že dvě různé reprezentace lichého kladného čísla mohou vést k rozkladu, poprvé navrhl Marin Mersenne . Široce se však používala až poté, co byla o sto let později přijata Eulerova metoda. Triumfem metody, která nyní nese Eulerovo jméno, bylo rozklad čísla , které bylo dříve považováno za prvočíslo, i když podle všech hlavních testů prvočísel nebylo pseudoprvočíslo .
Eulerova metoda faktorizace je účinnější než Fermatova metoda pro čísla, jejichž dělitelé si nejsou blízcí, a potenciálně výrazně efektivnější než zkušební dělení, pokud lze dostatečně rychle najít dvoučtvercovou reprezentaci čísel. Eulerův vývoj umožnil mnohem rychleji najít rozšíření čísel a vyvinout velké tabulky rozšíření čísel. Metody používané k nalezení čísel jako součtu dvou čtverců jsou v podstatě stejné jako pro nalezení rozdílu čtverců ve Fermatově faktorizační metodě .
Velkou nevýhodou Eulerovy rozkladové metody je skutečnost, že ji nelze použít k rozkladu celých čísel s prvočinitelem ve tvaru 4k + 3, který je zahrnut do prvočíselného rozkladu s lichým stupněm, protože taková čísla nelze reprezentovat jako součet dvou čtverců. Lichá složená čísla tvaru 4k + 1 jsou často součinem dvou prvočísel tvaru 4k + 3 (například 3053 = 43 × 71) a nelze je rozšířit pomocí Eulerovy metody.
Toto omezení způsobilo, že Eulerova dekompoziční metoda je nežádoucí pro počítačové dekompoziční algoritmy , protože žádný uživatel, který se pokouší aplikovat metodu na náhodné číslo, pravděpodobně nebude vědět, zda bude Eulerova metoda na toto číslo použitelná. Teprve relativně nedávno se objevily pokusy vyvinout Eulerovu metodu v počítačových algoritmech pro speciální čísla, pro které je Eulerova metoda jistě použitelná.
Brahmagupta-Fibonacci identita říká, že součin dvou součtů dvou čtverců je součtem dvou čtverců. Eulerova metoda se opírá o tuto větu, ale lze ji považovat za inverzní přístup k větě, pokud je dán , hledáme rozklad na součin dvou čtverců.
Nejprve to dedukujeme
a faktorizovat obě části
(jeden)Nyní nechť k = gcd ( a - c , d - b ) a h = gcd ( a + c , d + b ), takže existují čísla, pro která
Po dosazení do (1) dostaneme
Po snížení společných faktorů dostaneme
Nyní používáme skutečnost, že a jsou coprime, abychom dostali
Takto,
Nyní vidíme, že m = gcd( a + c , d - b ) a l = gcd( a - c , d + b )
Po aplikaci identity Brahmagupta-Fibonacciho dostaneme
Protože každý faktor je součtem dvou čtverců, jeden z nich musí obsahovat obě sudá čísla - buď , nebo . Bez ztráty obecnosti budeme předpokládat, že čísla v páru jsou sudá. Zhroucení se změní v
.Vzhledem k tomu:
Z výše uvedených vzorců máme:
a = 1000 | (A) a − c = 28 | gcd[A,C] k = 4 |
b = 3 | (B) a + c = 1972 | gcd[B,D] h = 34 |
c = 972 | (C) d − b = 232 | l = 7 |
d = 235 | (D) d + b = 238 | m = 58 |
Takto,
Číselné teoretické algoritmy | |
---|---|
Testy jednoduchosti | |
Hledání prvočísel | |
Faktorizace | |
Diskrétní logaritmus | |
Hledání GCD | |
Modulová aritmetika | |
Násobení a dělení čísel | |
Výpočet druhé odmocniny |