Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
1. Sep 2015
Welche Datenstrukturen wären das?
Wie soll das denn funktionieren ohne einen unbegrenzten Datentyp wie String oder BigInt?
Ich habe dasselbe noch mit einem Array of Byte versucht - dieses war noch langsamer als die Stringrechnung.
Ich werde auf Java umsteigen, da sind große Int's gang und gebe :shock:
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
1. Sep 2015
Um Matrizen mittels dem Gauß-Algorithmus schnell und exakt lösen zu können.
Leider aber unterstützt Delphi keine sog. Langzahlarithmetik.
https://de.wikipedia.org/wiki/Langzahlarithmetik
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
31. Aug 2015
Das "Ding" von Michael Jackson ist mir nicht bekannt. Ob mir das außerdem was nützen wird?
Ich habe den Code halt auf extended umgestellt. Wie erwartet, ein schreckliches Ergebnis, und noch schlimmer...(Bild 1)
Abhilfe schafft hier nur die FloatToFracStr von Björk....Dankeschön, besser als gar nichts. Jedoch treten auch hier Rundungsfehler ab einer bestimmten Matrixgröße auf, schade! (Bild...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
29. Aug 2015
Ich lasse nur rationale Zahlen als Eingabe zu. Sprich ganze Zahl / ganze Zahl. Kein pi oder E oder sonstiges. Und egal welche Rechenoperation (+,-,*,/), das Ergebnis ist immer auch eine rationale Zahl.
Und Int64 kann ich leider nicht nehmen, da dies kein Ordinaldatentyp im Gegensatz zu Integer ist.
Mit dem Methoden QR und LUP bin ich bisher noch nicht vertraut, deswegen hatte ich mir die...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
29. Aug 2015
Das habe ich auch nie bestritten. Im Gegenteil. Ich sagte ja, extended bietet 19 signifikante Stellen, aber eben nicht mehr und damit nicht alle! Und da liegt der Hund begraben. Ich möchte lediglich, dass der Bruch 1/3 eineindeutig und exakt dargestellt und vor allem mit ihm gerechnet wird, und nicht mit 1/3=0,333333333333333333300000000000000000000.....
Wenngleich Brüche stets abbrechend oder...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
29. Aug 2015
Danke für den Hinweis meines Missverständnisses. Aber ich habe mich wohl nur falsch ausgedrückt. Der Kern meiner Aussage sollte darin liegen, dass extended eben nur bis auf maximal 19 Nachkommastellen genau arbeitet (so viel weiß sogar ich).
Sollte also die Determinante D also einmal D=1/40^40 groß sein, wäre diese durch den Datentypen extended nur unzureichend erfasst, denn alle folgenden...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
29. Aug 2015
Natürlich ist es möglich, eigene Div und Modulo-Funktionen mit extended zu schreiben, wie:
function AModB(A, B: extended): integer;
begin
result := Trunc(A-Trunc(A/B)*B);
end;
Dieser ist zwar mit bis auf extended ausdehnbare Zahlen anwendbar, aber auch nicht zu gebrauchen, da er mir bei Zahlen A und B jenseits von integer leider falsche Ergebnisse liefert, z. B. ist A=1000000000733131...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Danny92,
29. Aug 2015
Hallo.
Nachdem mein Algorithmus zur Erstellung einer Dreiecksmatrix endlich fertig ist, muss ich nun leider feststellen, dass dieser bei größeren Matrizen (>12 Unbekannte/Zeilen) schon einige Minuten in Anspruch nimmt. (Selbstverständlich nimmt der Rechenaufwand mit der dritten Potenz der Anzahl der Unbekannten zu)
Wer sich meinen Code im Anhang anschauen wird, wird feststellen, dass dies...