Modulinio kėlimo laipsniu skaičiuoklė
Greitai ir tiksliai apskaičiuokite (pagrindas^rodiklis) mod m naudodami dvejetainį kėlimą laipsniu kvadratu.
Computed with exponentiation by squaring
Kaip veikia ši skaičiuoklė?
Modulinis kėlimas laipsniu randa (pagrindas^rodiklis) mod m. Užuot skaičiavus milžinišką laipsnį tiesiogiai, naudojamas dvejetainis kėlimas laipsniu kvadratu: kiekviename žingsnyje pagrindas keliamas kvadratu, o rodiklis dalijamas per pusę, padauginant į rezultatą ant nustatytų bitų ir visą laiką redukuojant mod m. Tai veikia per maždaug log2(rodiklis) daugybų ir išlieka tikslu su dideliais sveikaisiais skaičiais.
Formulė
How this is calculated
Įveskite tris sveikuosius skaičius: pagrindą b, neneigiamą rodiklį e ir teigiamą modulį m. Skaičiuoklė grąžina b, pakelto laipsniu e, liekaną dalijant iš m. Naivus b^e skaičiavimas pirmiausia persipildytų dideliems rodikliams, todėl šis įrankis naudoja kėlimą laipsniu kvadratu (dar vadinamą dvejetainiu kėlimu laipsniu).
Algoritmas pradeda nuo rezultatas = 1 ir redukuoja pagrindą moduliu m. Tada jis eina per rodiklio bitus nuo mažiausiai iki labiausiai reikšmingo: kai tik einamasis bitas yra 1, jis padaugina einamąjį rezultatą iš einamojo pagrindo (mod m), o kiekviename žingsnyje pakelia pagrindą kvadratu (mod m) ir pastumia rodiklį dešinėn vienu bitu. Kadangi kiekviena tarpinė sandauga redukuojama moduliu m, skaičiai lieka maži, o darbas proporcingas log2(e) daugybų, o ne e jų. Visi veiksmai atliekami su JavaScript BigInt, todėl rezultatai tikslūs nepriklausomai nuo dydžio.
Prielaidos ir kraštutiniai atvejai: rodiklis turi būti sveikasis e >= 0, o modulis turi būti teigiamas sveikasis m > 0 (mod 0 neapibrėžta). Pagrindas gali būti neigiamas; jis pirmiausia normuojamas į diapazoną 0..m-1 naudojant ((b mod m) + m) mod m, todėl grąžinama liekana visada neneigiama. Kai e = 0, rezultatas yra 1 mod m. Kai m = 1, rezultatas visada 0.
Dažnai užduodami klausimai
Dideliems rodikliams b^e yra astronomiškai didelis ir lėtas ar neįmanomas išsaugoti. Redukuojant moduliu m kiekvienoje daugyboje kiekviena reikšmė lieka mažesnė už m, ir viskas baigiama per maždaug log2(e) žingsnių.
Taip. Pagrindas prieš ciklą normuojamas į 0..m-1 naudojant ((b mod m) + m) mod m, todėl neigiamas pagrindas vis tiek duoda teisingą neneigiamą liekaną.
Pagal susitarimą b^0 = 1, todėl rezultatas yra 1 mod m (kuris lygus 0, kai m = 1).
Taip pat žinomas kaip
TG we-Calculate Editorial Team. (2026). Modulinio kėlimo laipsniu skaičiuoklė [Online calculator]. TG we-Calculate. https://we-calculate.com/lt/calculator/modular-exponentiation-calculator
TG we-Calculate Editorial Team. "Modulinio kėlimo laipsniu skaičiuoklė." TG we-Calculate. 2026. https://we-calculate.com/lt/calculator/modular-exponentiation-calculator.
TG we-Calculate Editorial Team, "Modulinio kėlimo laipsniu skaičiuoklė," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/lt/calculator/modular-exponentiation-calculator
@misc{wecalculate_modular_exponentiation_calculator, title = {Modulinio kėlimo laipsniu skaičiuoklė}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/lt/calculator/modular-exponentiation-calculator}}, year = {2026}, note = {TG we-Calculate} }
Ar ši skaičiuoklė jums padėjo?
