Modulo-Rechnung

Neue Frage »

guest Auf diesen Beitrag antworten »
Modulo-Rechnung
Hallo.

Habe folgendes Problem.

Wie kann ich z.B. 3242^43 mod 22 rechnen?

Gruß
andre81 Auf diesen Beitrag antworten »

Wahrscheinlich kannst du das gar nicht berechnen, da bei 3242^43 schon die Rechengenauigkeit nicht mehr hinhaut!
Das einzige was du versuchen kannst, ist dir ein C oder Java PRog zu schreiben, dass dir das berechnet, aber kann dir keine Garantie geben, dass es dann richtig ist!
Zahlen sind einfach zu groß für Standardrechner (Taschenrechner, Excel, ect.)!

Gruß André
andre81 Auf diesen Beitrag antworten »

hab grad mal nachgeschaut!
Mit C gehts nicht!

Wenn man den max. möglichen Datentyp nimmt:

long double hat 80 Bit Darstellung in einem Wertebereich von ca.
± 3.4*10^-4932 bis ± 3.4*10^+4932 mit einer maximalen Auflösung von 19 Stellen!
Für deine Aufgabe brauchst du schätzungsweise eine GEnauigkeit von 150 oder mehr Stellen.
Also denke ich mal:
MISSION IMPOSSIBLE!

gruß andre
papahuhn Auf diesen Beitrag antworten »

Mit brachialer Rechenleistung kommste nicht weit. Aber so war die Aufgabe wahrscheinlich gar nicht gemeint. Ich würde mal abwarten, bis einige Algebraiker vorbeikommen die dir das erklären können. Ich bin da leider nicht so firm drin, aber ich tippe mal auf 6.

Vielleicht kann ich Dir doch erklären wie das geht. Das Warum übernimmt dann ein anderer.

Das Modulo kannst du praktisch in die Basis reinziehen. Dadurch verkleinert sich die Zahl immer weiter.
. Dadurch kannst du die Basis wieder vergrößern:
. Das machst du solange weiter, bis es nicht mehr geht.
AD Auf diesen Beitrag antworten »

Oder so: An papahuhn anknüpfend, kann man so rechnen



Jetzt nach Primzahlpotenz-Modulen trennen: , und wegen des kleinen Fermats folgt



Jetzt wieder modulo 22 zusammenbauen: und ergibt .


Ist einerseits aufwändiger wegen der Modulaufspaltung und -wiederzusammenführung. Andererseits sind die Teilrechnungen modulo 2 und 11 um einiges einfacher.
Evok Auf diesen Beitrag antworten »

such mal nach dem satz von euler-fermat
 
 
guest Auf diesen Beitrag antworten »

Danke schon mal für eure Antworten.

Leider kapier ich das immer noch nicht! Eine Konkrete Aufgabe ist:

348^47 mod 5917

Komm nicht drauf wie man das umrechnet
AD Auf diesen Beitrag antworten »

Ok, hier nützt Fermat vermutlich wirklich nicht viel, weil der Exponent vergleichsweise klein ist in Relation zum Modul. Systematisch geht man in solchen Fällen eher so vor:

Du erstellst eine Binärdarstellung des Exponenten, in unserem Fall . Dann gilt ja



Und dann kannst du die benötigten Potenzen - genauer gesagt deren Restklassen modulo 59127 - rekursiv berechnen:



usw. Abschließend multiplizierst du die gemäß (*) benötigten Werte.



P.S.: Im Einzelfall geht es sehr oft auch eleganter, aber wenn einem das Auge dazu fehlt, sollte man lieber wie beschrieben systematisch vorgehen.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »