Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Große Modulo per GTR berechnen

Große Modulo per GTR berechnen

Universität / Fachhochschule

Algebraische Zahlentheorie

Tags: Algebraische Zahlentheorie, modulo, Modulorechnung, rest, Restklasse

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
iTobi

iTobi aktiv_icon

22:02 Uhr, 05.07.2018

Antworten
Hallo liebe Community,

ich möchte für meinen GTR (Texas Instruments 83 Plus) eine Modulo Funktion schreiben, welche mir für egal welches x Modulo m den Restwert berechnet.

Ich habe bereits in vielen Foren die einfache Idee gelesen, xm zu rechnen, das Ergebnis davon abzurunden, und das abgerundete Ergebnis von xm abzuziehen. Dieses muss dann nur noch mit m multipliziert werden und man hat den Restwert.


Mein Problem bei der ganzen Sache, das abrunden bei größeren Zahlen wie z.B. 2843mod77. Diese Zahl ist sehr groß und ist nicht so einfach mit den sichtbaren Nachkommastellen abzurunden (2.849796...E58).

Mein erster Ansatz war eine Schleife, die solange von x,m abzieht, bis x<m ist. In der Theorie und in einer Programmiersprache, auf einem leistungsfähigeren Computer mit einer stärkeren CPU ist das vermutlich machbar, allerdings braucht so ein GTR dafür schon sehr lange ;-)

Meine zweite Idee war es, mit einer Schleife mit m Durchgängen jeweils x-- darauf zu überprüfen, ob das Ergebnis eine gerade Zahl ist. Wenn dies der Fall ist, dann ist der aktuelle x Wert mein Restwert. Allerdings bin ich in meinem Taschenrechner auch noch auf keine Möglichkeit gestoßen, um eine Zahl darauf zu überprüfen.

Ihr seht also, dass ich mit etwas im Kreis drehe. Hat jemand vielleicht eine gute Idee oder erklärt mir, dass es viel einfacher geht?

Vielen Dank schon einmal im Voraus


Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Online-Nachhilfe in Mathematik
Antwort
abakus

abakus

22:55 Uhr, 05.07.2018

Antworten
Berechne 28² und bestimme mit der genannten Methode den Rest mod 77.
Multipliziere den erhaltenen Rest mit 28 und bestimme vom Ergebnis den Rest mod 77.
(Damit hast du den Rest von 28³.)
Multipliziere den erhaltenen Rest mit 28 und bestimme vom Ergebnis den Rest mod 77.
(Damit hast du den Rest von 284.)
Multipliziere den erhaltenen Rest mit 28 und bestimme vom Ergebnis den Rest mod 77.
(Damit hast du den Rest von 285.)
... usw.
Du brauchst also lediglich eine Schleife, die fortlaufend die gleichen Operationen wiederholt.
Antwort
Bummerang

Bummerang

12:00 Uhr, 06.07.2018

Antworten
Hallo,

das ist eine Aufgabe, da braucht man kaum ein Taschenrechner-Programm, ja man braucht eigentlich überhaupt keinen Taschenrechner. Man sollte als Student eigentlich erkennen, dass sowohl die 28 als auch die 77 durch 7 teilbar sind. Wegen der Teilerfreiheit von 7 und 11, die 11 stammt von der Zerlegung 77=711, wird nie der Rest 0 bei der Division von 28n durch 77 auftauchen. Was potentiell auftauchen kann sind alle durch 7 teilbaren Reste von 7 bis 70 und das sind genau 10 Stück. Da diese 10 kleiner als der Exponent 43 sind, muss es zwangsläufig einen Zyklus geben, in dem sich diese 10 Reste wiederholen. Da 7 und 11 Primzahlen sind, würde ich eine Wiederholung alle 10 Potenzen vermuten. Deshalb berechne ich nach der Methode von abakus mal einige Potenzen, allerdings etwas effektiver:

282=784=770+1414mod77

284=(282)2142=196=154+4242mod77

288=(284)2422=1764=1540+224=1540+154+7070mod77

2812=2842884270=2940=1540+1540-140=1540+1540-154+1414mod77

2812282mod77

Damit haben wir einen Zyklus von 10 (könnte auch von 2 oder 5 als Teiler von 10 sein, ist aber egal, auch die 10 bildet einen Zyklus) und wir wissen schon

2842282mod7714mod77

Bleibt als Restaufgabe:

2842=2842281428=392=154+154+84=154+154+77+77mod77

Jetzt werden die hier bekannten Krümelkacker sicher feststellen, dass ich zu Beginn behauptet habe, dass man gar keinen Taschenrechner braucht, denen bin ich natürlich noch meine Berechnungen im Kopf schuldig:

282=(28-2)(28+2)+4=2630+4=26310+4=780+4=784

7710=770

142=196    ;   das ist Schulstoff!

772=154

422=(42-2)(42+2)+4=4044+4=44410+4=1760+4=1764

7720=77(210)=(772)10=1540

4270=42710=(280+14)10=1940

1540+1540=3080

3080-2940=140

140=154-14

1428=14(142)=(1414)2=1962=392

154+154=308

84=77+7
Antwort
Bummerang

Bummerang

12:00 Uhr, 06.07.2018

Antworten
Korrektur eines Cut/Paste-Fehlers:

Bleibt als Restaufgabe:

2843=2842281428=392=154+154+84=154+154+77+77mod77

Da stand oben statt 2843 ganz links nur 2842.

Und Korrektur eines Tippfehlers:

4270=42710=(280+14)10=2940

Da stand oben statt 2940 ganz rechts nur 1940. Aber war ja ohne Folgen, da nicht im Rechenteil sondern nur im Teil für die Krümelkacker
iTobi

iTobi aktiv_icon

13:17 Uhr, 06.07.2018

Antworten
Mir ist vollkommen bewusst, dass sich das ganze relativ einfach ausrechnen lässt, wie du ja bereits gezeigt hast. Ich habe nur nach einer schnelleren Methode gesucht, um schnell und ohne große Zwischenrechnungen Restwerte zu Modulen am Taschenrechner zu berechnen. Das die Problemstellung von Hand einfacher zu lösen ist, als mit einer Funktion war mir bereits bekannt. ;-)


Antwort
ledum

ledum aktiv_icon

00:17 Uhr, 07.07.2018

Antworten
Hallo die Methode immer wieder m abzuziehen sollte man sicher erst für die letzten Schritte verwendn, also im genannten Fall erst mal 21058m abziehen.
dein Programm müsste erstmal große und kleine Zahlen unterschiedlich behandeln,
gruß ledum
Antwort
ledum

ledum aktiv_icon

00:17 Uhr, 07.07.2018

Antworten
sorry, Doppelpost
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.