![]() |
Re: 100 milliarden Werte speichern!
Hallo,
gehe ich recht in der Annahme, dass die gespeicherten Werte 3D-Koordinaten sind? Wie wäre es dann, wenn Du nur die Vektoren speicherst? Dafür könntest Du Dir einen Record bilden. Es werden im Array die Records gespeichert. Diese enthalten den X/Y/Z Offset zur vorherigen Position im Koordinatensystem. Wenn Du den Maßstab und die Schrittweite geschickt wählst, könntest Du pro Wert dann sogar mit einem Byte auskommen(-128..127). Du brauchst dann nur noch den Startpunkt in "voller Auflösung" zu speichern. Beispiel:
Delphi-Quellcode:
type
TOffset = record XDiff, YDiff, ZDiff : shortint; end; |
Re: 100 milliarden Werte speichern!
Es sind zwar 3d-koordinaten die aber nicht primär zur Zeichnung genutzt werden sonder zur Berechung und daher eine sehr genau sei müssen aber danke... :thumb:
|
Re: 100 milliarden Werte speichern!
Zitat:
|
Re: 100 milliarden Werte speichern!
Das stimmt. Aber das sicher sagen zu können, müsste man entweder den verwendeten Algorithmus kennen oder eine represäntative Ergebnis-Zahlenreihe (nicht unbedingt eine mit 100 Mrd. Einträgen ;)). Oder man läßt sich während eines Programmlaufes die maximalen/minimalen Werte ermitteln und legt das Koordinatensystem darauf hin fest.
@LePtitMort: Welche Auflösung verwendest Du denn für die Berechnung? |
Re: 100 milliarden Werte speichern!
ich verwende extendedzahlen und selbst das ist zu ungenau... aber bis jetzt sagte mir jeder das eien ausweitung über extended sehr umständlich ist... deswegen bleib ich dabei.
|
Re: 100 milliarden Werte speichern!
Nein, ich meinte jetzt damit die dargestellte Maßeinheit (z.B. km, ly usw.)
|
Re: 100 milliarden Werte speichern!
Das Problem klingt richtig interessant. Könntest du vielleicht mal sagen, was du eigentlich machen willst und wie die Daten aussehen? Wahrscheinlich könnte man so den verwendeten Algo verbessern und käme auf eine einfachere Speichermethode.
|
Re: 100 milliarden Werte speichern!
Wie wäre es, wenn du - wie bei diversen Bildkompressionsverfahren - jeweils eine Differenz speicherst. U.U. sind dann die Zahlen nicht mehr so groß. Auch gäbe es sicher noch andere Methoden die Daten sinnvoll und dennoch effektiver zu speichern ohne gleich auf rechenzeitintensive Komressionsverfahren zu setzen.
|
Re: 100 milliarden Werte speichern!
@Toxmen: seite2 Mitte steht um was es geht. würde mich freuen wenn du Neuigkeiten hast
@Union : geschindigkeiten in m/s und Positionen in m, aber spielt auch keine Rolle, da die zahl 123456,7 gleich vielspiechern brauch wie die zahl 1,234567 @olli wäre ein Versuch wert das stimmt. |
Re: 100 milliarden Werte speichern!
Wenn du soviele Punkte nicht speichern willst, könntest du versuchen, sie als Funktionen darzustellen. Du könntest z.B. nach einer bestimmten Anzahl an Schritten die Bahn jedes Planeten als Polynom großen Grades zu approximieren, was nicht allzu schwierig sein sollte, oder als Fourierentwicklung. Je nach dem wie die Bahnen aussehen, könnte es vor der approximation sinnvoll sein, in Kugelkoordinaten zu wechseln. Dann hättest du in jeder Komponente Funktionen, die sich gut durch Sinus-terme beschreiben lassen sollten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 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