![]() |
Größte Zahlenklasse
hi
Ich will eine (zb. 1000 stellige Zahl) eingeben, nur was ich weiß gibt es keine zahlenKlasse(integer, int64, usw.) die eine so große Zahl aufnimmt. Wie kann man eine Variable dennoch definieren, ohne dass Delphi abbricht. |
Re: Größte Zahlenklasse
|
Re: Größte Zahlenklasse
Zitat:
|
Re: Größte Zahlenklasse
sry, habe vergessen, dass ich es in Lazarus mache, gibt es so eine Möglichkeit auch in Lazarus?
grenzgänger: abtippen, ja, nur nichts damit machen, ohne dass mit Lazarus abbricht |
Re: Größte Zahlenklasse
Zitat:
|
Re: Größte Zahlenklasse
ich weiß es klingt absurd und ich weiß selbst, dass ich sie nie finden werde, aber ich bin einer der Leute die der Primzahlensuchvirus angesteckt hat.
|
Re: Größte Zahlenklasse
dann kannst doch deine gefunde neue stelle, immer gleich ausgeben...
|
Re: Größte Zahlenklasse
Zitat:
Sarkasmus on: Mach weiter so bist weg von der Strasse und out of trouble in der Zeit solange du suchst! Sarkasmus off: |
Re: Größte Zahlenklasse
ja schon, nur ich muss ja nachschauen, ob es eine Primzahl ist oder nicht
|
Re: Größte Zahlenklasse
Schnapp dir doch einfach C/++ und libgmp ;) Aber dafür gibt es sicher auch Lazarus-Bindings... Zur Not bastelst du selbst ein kleines mit allen Funktionen, die du brauchst, zusammen.
|
Re: Größte Zahlenklasse
ok, danke da ich die .pas Units ja auch in Lazarus verwendn kann, schaue ich einmal nach.
Danke für die Hilfe! |
Re: Größte Zahlenklasse
|
Re: Größte Zahlenklasse
danke, das vereinfacht die sache natürlich
|
Re: Größte Zahlenklasse
Es mag funktionieren, aber besonders schnell funktionieren wird es wahrscheinlich nicht. Das wirst du gerade bei Zahlen über etwas 100 Stellen (vielleicht sogar früher) sicher merken. String-Mathematik bearbeitet ~3,3 bit pro Aktion, normale x86 Int-Mathematik bearbeitet 32. Noch dazu fallen bei den Strings etlichen Operationen an, die garnicht nützlich sind... Für deine Zwecke ist eine spezialisierte und vor allem optimierte Library mit passenden Algorithmen unerlässlich, falls du dich nicht schwarz warten willst, während ich GMP# in Zahlenbereichen arbeite, von denen du zeit- und speichermässig und träumen kannst ;o)
|
Re: Größte Zahlenklasse
Zitat:
![]() ![]() Allerdings ist der Nachweis, daß eine allgemeine 1000-stellige Zahl prim ist, sehr SEHR zeitaufwendig. Es sei denn, sie hat spezielle Eigenschaften, zB eine Mersenne-Zahl, oder man begnügt sich mit wahrscheinlich prim. Wenn sie zusammengesetzt, ist das relativ einfach nach zu weisen. Beispiel mit meinen Demo-Calculator ispprime(mersenne(3217)) = true in 2.2 s ispprime(mersenne(3221)) = false in 2.3 s Wenn Du Primaliät nachweisen willst, kannst Du Marcels Primo runterladen, allerdings rechnet das wie gesagt sehr, sehr lange. Gruß Gammatester |
Re: Größte Zahlenklasse
ggf. je nach Anwendung auch:
GNURZ: Arithmetik zum Umgang mit (G)roßen (N)atürlichen (U)nd (R)ationalen (Z)ahlen ![]() |
Re: Größte Zahlenklasse
@gammatester:
Die Demo funktioniert bei mir nicht, er meint dauernt, es fehlt ihm eine .dcu. @Marcels Primo: ich würde es gerne seöbst Programmieren, daher meine Frage. @monta: dich gibt es hier auch ;) nur leider kann ich damit maximal 19. Stellige Zahlen bearbeiten. |
Re: Größte Zahlenklasse
Zitat:
Gruß Gammatester |
Re: Größte Zahlenklasse
mp_types.dcu
obwohl die .pas Datei existiert ich schaue mir das Ganze morgen genauer an. |
Re: Größte Zahlenklasse
Zitat:
Du kannst damit beliebig große Zahlen verarbeiten, die 19-Stellengrenze von qword wird damit ja gerade aufgehoben: Zitat:
|
Re: Größte Zahlenklasse
Wenn es kein Problem für dich wäre, dein Programm unter C# oder einer anderen Mono-kompatiblen Sprache zu schreiben, könnte ich dich auch mit einem libgmp-Wrapper versorgen ;)
|
Re: Größte Zahlenklasse
ich versuche jetzt nebenbei C++ zu lernen, aber wird wahrscheinlich noch ein bischen dauern, danke an alle
|
Re: Größte Zahlenklasse
Zitat:
Zitat:
Grüße Klaus |
Re: Größte Zahlenklasse
Zitat:
Zitat:
|
Re: Größte Zahlenklasse
Nur mal so aus interresse - wofür brauchst du das?
Vielleicht für die im Moment laufende Matheolympiade? Naja kann ja sein ; MFG Fab ;) |
Re: Größte Zahlenklasse
Zitat:
@torpedo: lesen bildet ;), außerdem ist C++ eine weiterentwickelte Version von C#, also dürfte das nicht den Auschlag geben ;) |
Re: Größte Zahlenklasse
Zitat:
C# ist ein "C-Dialekt" der Firma Microsoft. Sie ist Teils an Java und Teils an C++ angelehnt ;) Nur so als kleine Info ;) Für mehr Infos verweise ich mal auf Wikipedia :D MFG Fab ;) |
Re: Größte Zahlenklasse
Zitat:
|
Re: Größte Zahlenklasse
Zitat:
![]() |
Re: Größte Zahlenklasse
theoretisch magst du recht haben, dass .NET plattformunabhängig ist, praktisch ist es jedoch an Windows gebunden.
ansonsten wie du bereits erwähnt hast, lässt sich der intermediate code von java/.NET nicht direkt ausführen. aber das hat ja nicht nur nachteile. ansonsten OT, und jetzt schluss mit dem thema. |
Re: Größte Zahlenklasse
Ich habe das C-Dialekt extra in ""-Zeichen gesetzt.
;) Mit der neune Sprache hast du vollkommen recht. ;) Ich habe diese sehr mehrdeutige Wortwahl aber deshalb benutzt, da C# sehr stark an C++ erinnert. Man hat das ganze ja nicht umsonst !!!C!!!# genannt ;) Aber ihr habt natürlich recht. Sorry ;) MFG Fab ;) |
Re: Größte Zahlenklasse
Zitat:
Code:
Kann genauso schnell mit Primo verifiziert werden. Da es nach dem Primzahlsatz ca 10^100/100/ln(10)-10^99/99/ln(10) = 3.9E97 100-stellige Primzahlen gibt, wäre es ein irrer Zufall wenn Du schon ein bekannte erwischt. Allerdings ist diese jetzt vergeben :)
[D]:=> nextprime(random(10^100))
Result = 2632396436629883249650013553982945076965176231647985458096886656311394853857362897448045375179106333 Viel interessanter ist folgendes: Angenommen Primo stellt fest, daß eine so erzeugte Zahl (eine sogenannte BPSW-Pseudoprimzahl) nicht wirklich prim ist. Dann gibt es drei Möglichkeiten 1. Mein Programm hat sich verrechnet. Das ist schlecht, aber ich kann wieder einen Bug suchen und vernichten. 2. Primo hat sich verrechnet. Dann gilt das aus 1. für Marcel Martin. 3. Du hast ein Beispiel für eine BPSW-Pseudoprimzahl gefunden, die nicht prim. Das kannst veröffentlichen und wirst weltberühmt (zumindest in bestimmten Kreisen). Auf jeden Fall ist das besser als die nächst größere bekannte Primzahl zu finden. Gruß Gammatester |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz