![]() |
Sehr Große Zahlen
Hallo, ich programmiere immer noch an meiner Gravitationsprogramm. :spin: Ich hab nun das Problem, dass die Massen von Körpern wie z.b der Erde ziemlich groß sind (5974000000000000000000000 kg). Welches Zahlenformat soll ich nun nehmen? Ich muss ja mit den Zahlen auch noch Rechnen (Die Masse von 2 Körpern multiplizieren) und ich kenne kein Zahlenformat, das 60, wenn nötig sogar 200 stellen fassen kann.
|
Re: Sehr Große Zahlen
|
Re: Sehr Große Zahlen
Guten Abend,
würde es nicht ausreichen solch große Massen in Tonnen oder KiloTonnen auszugeben? Grüße Klaus |
Re: Sehr Große Zahlen
wie wär es mit tonnen oder megatonnen? als normalen double .. das sollte reichen.
für die entfernungen und die grössen, kannste das ganze eh nicht auf's gramm abwiegen... <HTH> |
Re: Sehr Große Zahlen
In den meisten Fällen reicht es doch, die zur Verfügung stehenden Stellen eines Double oder Extended-Datentyps zu benutzen. 15 Stellen sind doch nun mehr als ausreichend.
Zitat:
|
Re: Sehr Große Zahlen
aber big-int funktioniert nicht wenn ich kommastellen habe und die habe ich ja. Ich würde es ja gerne in megatonnen rechnen, aber dann kann ich das schlecht in die formel reinpacken, wenn z.b nur ein 15kg schweres objekt vorbeifliegt. dann habe ich nämlich 15 kommastellen (0,00000 und so weiter megatonnen)
|
Re: Sehr Große Zahlen
Und wenn du eine array von Singles machst???
Delphi-Quellcode:
Hm...das Problem wäre dan nur mit dem Rechnen :gruebel:
GroßeZahl : array of Single
//So zuweisen SetLenght(GroßeZahl,6) //die vor dem Komma :mrgreen: GroßeZahl[0] := 1; GroßeZahl[1] := 2; GroßeZahl[2] := 5; GroßeZahl[3] := 5; GroßeZahl[4] := 6; GroßeZahl[5] := 1,8495; // Das wäre jetzt 125561,8495 Vieleicht ist das ein Denkanstoß für dich :zwinker: |
Re: Sehr Große Zahlen
Als ich meine Sonnensystem-Simulation programmiert habe, habe ich mir von vornherein keine Gedanken drüber gemacht, diese Zahlen direkt zu übernehmen. Stattdessen habe ich sie ganz simpel skaliert. Lege einen Faktor für all deine Zahlen fest und erschaff dir eine eigene Dimension mit der du gut arbeiten kannst.
|
Re: Sehr Große Zahlen
Zitat:
|
Re: Sehr Große Zahlen
Zitat:
|
Re: Sehr Große Zahlen
Aber luftgefüllter Fussball. Zumindest sofern der < 1 kg wiegt. :mrgreen:
Ne, Goldbarren und Sonne ist noch besser. :lol: |
Re: Sehr Große Zahlen
Oh.. Der durchschnittliche Fussball wiegt rund 400 Gramm.. Um den Vergleich möglichst exakt zu halten, sind das leider 320 Gramm zu viel :( Da macht die Luftfüllung nicht aus.
|
Re: Sehr Große Zahlen
Wenn wir schon soweit sind nehmen wir doch gleich eine Mücke und die Sonne :-D :-D :-D
|
Re: Sehr Große Zahlen
Ich glaube, es reicht jetzt echt. :duck:
|
Re: Sehr Große Zahlen
Woissn hier der Mod, der Euch alle zurückpfeift?
Egal: Mit TBigInt geht es. Man muss nur die Einheit ändern. Ich meine, das im astronomischen Umfeld eine Genauigkeit von 1Gramm alle meß- und nicht meßbaren Eventualitäten abdeckt. Man muss sich auch immer den (Un)Sinn der implementierten und dargestellten Genauigkeit vor Augen halten. Ich meine, wie seriös klingt das denn, wenn ich sage, das die Erde um 0,000000000000000000000000000000000000000000000012 314312413435345478678674531312346658766ms langsamer dreht, wenn ein intergalaktischer Fußball die Erde berührt. Da kann man auch gleich sagen, das in China ein Sack Reis umgefallen ist. |
Re: Sehr Große Zahlen
Bei der Simulation und Berechnung geht es ja nicht in erster Linie um Genauigkeit, sondern
um den grossen Zahlenbreich. Es können sehr hohe Massen und Entfernungen auftreten, aber auch extrem kleine Kräfte und Werte (z.B. Gravitationskonstante). Und daher kommen hier sinnvollerweise nur Flieskommazahlen in Betracht. Man kann sämtliche Berechnungen in SI-Grundeinheiten (kg, s, m,...) anstellen, ohne dass der Zahlenbereich von Extended gesprengt werden kann. Warum sollte man dann mit irgendwelchen BigInts und Skalierungen plagen, wenn Flieskommazahlen hier ein Heimspiel haben ? Andererseits, wenn man Planetenbahn mehrere Hundert oder Tausend Jahre in die Zukunft rechnen möchte, haben kleinste Rundungsfehler grosse Änderungen der Bahnen zur Folge. Dies gilt auch für das Drei- oder Mehrkörperproblem. Man kann deshalb drüber nachdenken, ob man mit grösserer Genauigkeit als mit 80 Bit rechnen muss. |
Re: Sehr Große Zahlen
Also wenn du nur mit Integers rechnen würdest, da hätte ich was
![]() Diese Idee kann man evtl auch auf Flieskomma ausweiten, must halt mal schaun. |
Re: Sehr Große Zahlen
ja natürlich habt ihr alle Recht, das ist schon Unsinn, aber ich will mit meinem Programm halt so Unsinn ausrechnen. In erster Linie ist das Programm ja keine Simulation, sondern ein Rechenprogramm. :duck: das mit big number ist ne super idee, nur leider kann ich damit nicht rechnen:
Zitat:
Ein Raumschiff mit geringer Masse (10000kg) fliegt durch den Weltraum. In nächster Nähe ist ein Gasriese, ein Asteroid und ein Planetoid. Das Raumschiff wird von allen dreien angezogen. Mit dem Impulsantrieb kann es allerdings dagegenwirken. Was sind nun die möglichen Routen, die das Raumschiff fliegen kann, ohne dass es in die Umlaufbahn eines Objektes reingezogen wird und nicht mehr rauskommt? Also mit meinem Programm ließe sich das rechnen, wenn ich nur endlich ein großes Zahlenformat hätte. :cry: Vom Rechnerischen und von den physikalischen Gegebenheiten hab ich schon alles programmiert. |
Re: Sehr Große Zahlen
Hallo Volker,
hast Du dir schon einmal die ![]() Diese soll auch große Floats unterstützen. Grüße Klaus |
Re: Sehr Große Zahlen
@vsilverlord
Diese Klasse zeigt nur so ungefähr wies geht, es ist mehr als Sample gedacht das man dan ausbauen kann. Mod und Div zu implementieren sollte für einen entsprechenden Informatiker aber kein Problem sein. |
Re: Sehr Große Zahlen
ja gut, ich kanns mir einigermaßen vorstellen, aber für mich nicht-informatiker ist das schon ein problem, bis ich das programmiert habe! Da muss ich ja dann auch meine gesamten anderen Quelltext danach ausrichten oder? ich kann ja dann nicht mal mehr x1:=x2+x3 eingeben ohne dass ich was daran ändern muss. :pale:
|
Re: Sehr Große Zahlen
das kannst du mit allen anderen Optionen auch nicht machen.
In Delphi kann man keine Operatoren überladen :( |
Re: Sehr Große Zahlen
class operatoren von Records ab D10 schon
|
Re: Sehr Große Zahlen
haha delphi 10!! :tongue: das hab ich aber nicht
|
Re: Sehr Große Zahlen
TDE ist kostenlos
|
Re: Sehr Große Zahlen
Zitat:
denke, du solltest dich entweder von der anforderung verabschieden oder 'ne allgemeingültige unit schreiben, die integer mit 10'000 stellen verlustfrei berechnen kann, mit sämtlichen operatoren :-) . wäre dir dankbar, wenn du diese unit anschliessend open source stellen könntest :-) schöne grüsse GG btw: auch die mondlandung hat damals mit 8 bit hingehauen :-) ansonsten war es 'n prima fake, mit ebenfalls 8 bits :-) |
Re: Sehr Große Zahlen
ok ich werds programmieren is ja gut. :firejump: :bouncing4: :coder2:
als ich meld mich dann wieder wenns nicht funktioniert :balloon: |
Re: Sehr Große Zahlen
klingt interessant was du da machst,
könntest du ein Screenshot veröffentlcihen wenn du so weit bist? mfG Spiderpig |
Re: Sehr Große Zahlen
Zusammenfassend (bitte korrigier mich, wenn was falsch ist):
* du willst grosse Zahlen nehmen, für die Double locker reicht. * du braucht keine utopische Genauigkeit, die Double aus dem Spiel werfen würde * du brauchst mod & div.... Ergo: Warum baust du nicht einfach eine mod & div für doubles ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 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