If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Modulární mocnění

Nakonec prozkoumejme, jak se v modulární aritmetice umocňuje:
A^B mod C = ( (A mod C)^B ) mod C
Často potřebujeme spočítat A^B mod C pro velké hodnoty B.
A^B bohužel nabývá vysokých hodnot i pro relativně malé hodnoty B.

Například:

2^90 = 1 237 940 039 290 000 000 000 000 000
7^256 = 2 213 595 400 050 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 83 794 038 078 300 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 721 264 246 243 000 000 000 000 000
Tyto velké hodnoty způsobují v kalkulačkách a počítačích chybu overflow, protože jsou mimo rozsah hodnot, se kterými si je daný počítač schopen poradit.
I kdyby tuto chybu neměly, trvalo by neuvěřitelně dlouho nalézt „mod“ takových velkých hodnot přímo.

Co můžeme udělat, abychom snížili velikost zahrnutých členů a zrychlili tak výpočet?

Řekněme, že chceme spočítat 2^90 mod 13, ale naše kalkulačka nezvládne pracovat s hodnotami většími než 2^50.
Můžeme to vyřešit pomocí jednoduché strategie rozděl a panuj:
menší části
vlastnosti mocnin
2^90 = 2^50 * 2^40
mod C
každá část
2^50 mod 13 = 1125899906842624 mod 13 = 4
2^40 mod 13 = 1099511627776 mod 13 = 3
vlastnosti násobení
zkombinování
2^90 mod 13 = (2^50 * 2^40) mod 13
2^90 mod 13 = (2^50 mod 13 * 2^40 mod 13) mod 13
2^90 mod 13 = ( 4 * 3 ) mod 13
2^90 mod 13 = 12 mod 13
2^90 mod 13 = 12

Jak lze snadno spočítat A^B mod C, je-li B mocnina čísla 2 ?

Jak lze spočítat 7^256 mod 13 pomocí kalkulačky, která nezvládne pracovat s čísly většími než 7^10 ?
Mohli bychom 7^256 rozdělit na 25 částí 7^10 a 1 část 7^6, ale to by nebylo příliš efektivní.
Je zde lepší způsob…

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.