Rechnen mit großen Zahlen als Strings

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Little John

Rechnen mit großen Zahlen als Strings

Beitrag von Little John »

xxx
Zuletzt geändert von Little John am 07.05.2010 01:28, insgesamt 3-mal geändert.
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

danke für den Code kann es gut gebrauchen und funktioniert auch noch mit 6750 Stellen.
Werde mal weiter gehen.

Danke




mit freundlichen Grüßen Pandorra
Benutze PB v 4.40 Beta 3
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Gabs das nicht schonmal als Lib? Auch auf diese Funktionsweise? Ich meine, die heißt "BigNum" (und aufgrund der Arbeit mit den Strings hatte NTQ sie irgendwann mal "BigShit" getauft :D)
Aber gerade bei langen Nachkommastellen ist das garantiert nützlich! Nice work! :allright:

Gr33tz
Tafkadasom2k5

Edit:
Es war MVXA und zwar hier! :mrgreen:
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Little John

Beitrag von Little John »

Danke für Eure freundlichen Rückmeldungen.

Ich habe keine Ahnung ob es das schonmal als Lib gab. Es hat mir einfach viel Spaß gemacht das selbst zu schreiben. ;-)

Ein Problem ist, dass diese Routinen bei wirklich großen Zahlen langsam sind. Ich wollte den Code (zumindest zunächst) möglichst einfach und gut lesbar halten. Für eine erste Geschwindigkeitssteigerung würde ich wahrscheinlich statt Mid() entsprechende Pointer verwenden.

Ich möchte an dieser Stelle noch auf die GNU Multiple Precision Arithmetic Library (GMP) hinweisen, die sicherlich schneller ist und auch mehr Möglichkeiten bietet ... dafür liegt sie nicht im PureBasic-Quelltext vor. :mrgreen:

Gruß, Little John
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

Little John hat geschrieben: Es hat mir einfach viel Spaß gemacht das selbst zu schreiben. ;-)
Auch das war damals der Hintergrund der 'BigNum' in der PBOSL von mir.
Rechnen so wie ich es in der Grundschule gelernt hatte.
Dann die direkte Umsetzung mit einfachen Mitteln die jede
Basic-Programmiersprache (einfache Stringverarbeitung)
zur Verfügung stellt..
Speed iss was anderes und stand nie im Vordergrund.
Und ausserdem @Little John , Meckerfritzen gibts immer.
Rings hat geschrieben:ziert sich nich beim zitieren
Little John

Beitrag von Little John »

Rings hat geschrieben:
Little John hat geschrieben: Es hat mir einfach viel Spaß gemacht das selbst zu schreiben. ;-)
Auch das war damals der Hintergrund der 'BigNum' in der PBOSL von mir.
Rechnen so wie ich es in der Grundschule gelernt hatte.
Dann die direkte Umsetzung mit einfachen Mitteln die jede
Basic-Programmiersprache (einfache Stringverarbeitung)
zur Verfügung stellt..
Gero von Randow hat das im Klappentext der ersten Ausgabe seines Buches Das Ziegenproblem sinngemäß so beschrieben: Das formale Lösen eines Problems führt zur Ausschüttung chemischer Substanzen im Gehirn, wodurch ein Glücksgefühl erzeugt wird. :-)
Rings hat geschrieben:Speed iss was anderes und stand nie im Vordergrund.
Und ausserdem @Little John , Meckerfritzen gibts immer.
Nur um keine Missverständnisse aufkommen zu lassen: Die Formulierung "freundlichen Rückmeldungen" in meinem vorangehenden Posting war nicht ironisch gemeint, und ich fühle mich nicht "angemeckert" oder so.

Dass vor allem bestimmte Berechnungen mit großen Zahlen (ich meine hier die Faktorisierung) in jedem Fall (auch z.B. mit GMP) relativ langsam sind, ist letztlich sogar gut. Andernfalls wären alle möglichen heutzutage benutzten Verschlüsselungen nicht mehr sicher. ;-)

Gruß, Little John
Antworten