Advanced

Modulaarisen potenssin laskin

Laske (kantaluku^eksponentti) mod m nopeasti ja tarkasti käyttäen binääristä potenssiinkorotusta neliöimällä.
Integer base
Non-negative integer
Positive integer
Result: (base^exponent) mod m
9

Computed with exponentiation by squaring

Kanta
7
Eksponentti
256
Modulus
13
Result
9
01.63.34.96.58.19.811.413Result lands within [0, m)
Tulokset ovat arvioita ja tarkoitettu vain yleiseen tiedoksi, eivätkä ne ole ammattilaisen neuvoja — varmista aina tärkeät tulokset itsenäisesti ennen kuin luotat niihin. Lue koko vastuuvapauslauseke.
Pikavastaus

Miten tämä laskin toimii?

Modulaarinen potenssiinkorotus löytää (kantaluku^eksponentti) mod m. Sen sijaan että suuri potenssi laskettaisiin suoraan, se käyttää binääristä potenssiinkorotusta neliöimällä: neliöi kantaluku ja puolita eksponentti joka askeleella, kertomalla tulokseen asetetuilla biteillä, pelkistäen mod m koko ajan. Tämä toimii noin log2(eksponentti) kertolaskussa ja pysyy tarkkana suurilla kokonaisluvuilla.

Kaava
tulos = (kantaluku^eksponentti) mod m, neliöimällä: kun e > 0, jos e on pariton, tulos = tulos·b mod m, sitten b = b·b mod m, e = e >> 1
How this is calculated

Syötä kolme kokonaislukua: kantaluku b, ei-negatiivinen eksponentti e ja positiivinen moduli m. Laskin palauttaa b:n korotettuna e:een jäännöksen, kun se jaetaan m:llä. b^e:n laskeminen ensin naiivisti ylivuotaisi suurilla eksponenteilla, joten tämä työkalu käyttää potenssiinkorotusta neliöimällä (kutsutaan myös binääriseksi potenssiinkorotukseksi).

Algoritmi alkaa arvosta tulos = 1 ja pelkistää kantaluvun modulo m. Sitten se kulkee eksponentin bittien läpi vähiten merkitsevästä merkitsevimpään: aina kun nykyinen bitti on 1, se kertoo kulkevan tuloksen nykyisellä kantaluvulla (mod m), ja joka askeleella se neliöi kantaluvun (mod m) ja siirtää eksponenttia oikealle yhden bitin. Koska jokainen väli-tulo pelkistetään modulo m, luvut pysyvät pieninä ja työmäärä on verrannollinen log2(e) kertolaskuun sen sijaan että niitä olisi e kappaletta. Kaikki laskenta tehdään JavaScriptin BigIntillä, joten tulokset ovat tarkkoja koosta riippumatta.

Oletukset ja erikoistapaukset: eksponentin on oltava kokonaisluku e >= 0 ja modulin on oltava positiivinen kokonaisluku m > 0 (mod 0 on määrittelemätön). Kantaluku voi olla negatiivinen; se normalisoidaan ensin alueelle 0..m-1 käyttäen ((b mod m) + m) mod m, joten palautettu jäännös on aina ei-negatiivinen. Kun e = 0, tulos on 1 mod m. Kun m = 1, tulos on aina 0.

Usein kysytyt kysymykset

Suurilla eksponenteilla b^e on tähtitieteellisen suuri ja hidas tai mahdoton tallentaa. Pelkistäminen modulo m joka kertolaskussa pitää jokaisen arvon alle m:n ja päättyy noin log2(e) askeleessa.

Kyllä. Kantaluku normalisoidaan alueelle 0..m-1 ennen silmukkaa käyttäen ((b mod m) + m) mod m, joten negatiivinen kantaluku tuottaa silti oikean ei-negatiivisen jäännöksen.

Käytännön mukaan b^0 = 1, joten tulos on 1 mod m (joka on 0 kun m = 1).

Tunnetaan myös nimellä

modulaarinen potenssi
potenssi modulo
modpow laskuri
a^b mod m
nopea potenssiin korotus
modulaarinen eksponentointi

APA

TG we-Calculate Editorial Team. (2026). Modulaarisen potenssin laskin [Online calculator]. TG we-Calculate. https://we-calculate.com/fi/calculator/modular-exponentiation-calculator

Chicago

TG we-Calculate Editorial Team. "Modulaarisen potenssin laskin." TG we-Calculate. 2026. https://we-calculate.com/fi/calculator/modular-exponentiation-calculator.

IEEE

TG we-Calculate Editorial Team, "Modulaarisen potenssin laskin," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/fi/calculator/modular-exponentiation-calculator

BibTeX

@misc{wecalculate_modular_exponentiation_calculator, title = {Modulaarisen potenssin laskin}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/fi/calculator/modular-exponentiation-calculator}}, year = {2026}, note = {TG we-Calculate} }

Oliko tästä laskimesta sinulle apua?