C# ModInverse Funktion
Gibt es eine eingebaute Funktion, die mir erlauben würde, berechnet das modulare inverse von a(mod n)?
z.B. 19^-1 = 11 (mod 30), in diesem Fall die 19^-1 == -11==19;
Beachten Sie, dass Sie umkehren können beliebige Multiplikationen. Für Beispiel 2 ist multiplikative inverse modulo 30, da GCD(2,30)!=1
InformationsquelleAutor Nook | 2011-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da .Net 4.0+ implementiert BigInteger mit einem speziellen modularen Arithmetik-Funktion ModPow (was produziert "
X
machtY
moduloZ
"), Sie brauchen nicht eine Drittanbieter-Bibliothek zu emulieren ModInverse. Wennn
ist ein Paradebeispiel, alles, was Sie tun müssen, ist zu berechnen:Für mehr details, schauen Sie in Wikipedia: Modulare multiplikative inverse, Abschnitt Mit Euler ' s theorem, den speziellen Fall "wenn m ist eine Primzahl". By the way, gibt es eine neuere ALSO Thema: 1/BigInteger in c#, mit dem gleichen Ansatz vorgeschlagen durch CodesInChaos.
InformationsquelleAutor Anton Samsonov
a
ist nicht invertierbar modulon
) was passiert, wenna
undn
Aktien einen nicht-trivialen Faktor (Ihre GCD übersteigt).InformationsquelleAutor Samuel Allan
Den BouncyCastle Crypto-Bibliothek hat ein BigInteger-Implementierung, die hat die meisten der modulare Arithmetik-Funktionen. Es ist in der Org.BouncyCastle.Math-namespace.
InformationsquelleAutor Michael Bray
Es ist keine Bibliothek für das abrufen inverse mod, aber der folgende code kann verwendet werden, um es zu bekommen.
InformationsquelleAutor John P P