Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
|
Re: mod mit extended
8. Jul 2004, 08:02
Grundsätzlich gilt zu jedem Zahlensystem, das wenn die Division klar definiert ist diese Divison auch die Restklassen erzeugt. Egal also ob man Ganzzahlen, Fließkommazahlen oder Komplexezahlen usw. benutzt.
Das Manko ist nicht die Mathematik sondern die Rechentechnik die eben bei Fließkommazahlen "Verluste" erzeugt, sprich immer jede Operation rundet. Mathematisch kann man auch bei Divisionen mit gebrochenen Zahlen eine Modulo Operation durchführen. Dazu ist die Anwendung des GCD = Größten gemeinsammen Vielfaches notwendig.
Man kann also mit x'beliebigen Fließkommazahlen bei deren Division auch den Rest berechnen, nur eben mit dem Problem das die einzelnen Operationen auf Grund der Rechentechnik ungenaue Resultate liefern. Dies lässt sich aber kompensieren indem man die darzustellenden Zahlen in Matrizen umwandelt bei denen dann jedes Element IMMER innerhalb der exakt darstellbaren Grenzen des Zahlensystemes liegt. D.h. man zerlegt die großen Zahlen in deren Exponentielle Teile wobei jeder Einzelteil so klein gewählt wird das er immer exakt berechenbar ist. Nun, wird jede Operation auf dieser Darstellung der Zahl durchgeführt. Dabei kann man nun absolt exakte Berechnungen in jedem Zahlensystem zur jeder x'beliebigen Zahlendarstellung durchführen, die dann auch exakte Resultate liefert. Lange Rede kurzer Sinn: exakt so gehen math. Bibliotheken, wie obengenannte BigNum, BigFlots, LargeInteger usw. vor. Wenn man sich Zb. die 32 Bit Rechentechnik anschaut so wird man feststellen das die Hauptaufgabe der CPU darin besteht die Rechenoperationen auf 32 Bitzahlen so zu zerlegen das diese in der CPU in "Einzelschritten" auf Bits arbeitet. Ein 32Bit Integer wird also intern ebenfalls in 32 einzelne Bits zerlegt und immer nur 2 Bits werden addiert/subtrahiert usw. Auch hier wird also mit der Exponentiellen Zerlegung von 32 Bit Zahlen zur Basis 2 in einzelne Bits gearbeitet. Ob diese Einzelbits nun Ganzzahlige oder gebrochene Zahlen oder Fließkommazahlen darstellen ist für die Mathematik uninteressant, so lange man mit jeder Einzeloperation niemals die Fehlertoleranzen überschreitet.
Nun, bei einer normalen Division interessiert nur der Quotient, der bei Fließkommaoperationen annähernd exakt ist. Der modulare Rest dagegen ist nur auf Ganzzahlebene interessant (meistens zumindest) und dann wird er auch ganz exakt benötigt. Für solche Ansprüche sind die Fließkommazahlen, bzw. alle Rechenoperationen die implizit runden und Informationen "abschneiden" uninteressant.
Zb. eine RSA Schlüsselberechnung ist in Fließkommaarithmetik absolut untauglich. Alexander: es wäre also interessant zu wissen in welchem mathematischem Zusammenhang die Frage gestellt wurde, um sie korrekt beantworten zu können.
Gruß Hagen
|