![]() |
Summenzeichen in Delphi?
Hi,
es gibt ja in Delphi die Unit Math. Gibts da auch sowas wie das Summenzeichen? Ich bräuchte nämlich das Ergebnis der Summe: n-1 Σ (n-k) k=1 Natürlich könnte ich das auch mit einer Schleife machen, aber das finde ich nicht sehr elegant. Oder weiß jemand zufällig eine explizite Darstellung für die Summe? :lol: Ich überleg schon 3Stunden, aber mir fällt absolut keine ein. :wall: Ich brauche das ganze, weil ich die Restzeit berechnen will für etwas, das so ähnlich aussieht:
Delphi-Quellcode:
Die 2te Schleife wird also immer kürzer. Und um das korrekt zu berechnen muss ich wissen, wieviel Schleifen denn noch zu berechnen sind. Und das mit einer weiteren for-Schleife zu machen ist natürlich schlecht, weil die Schleife bis zu 50000 mal durchlaufen wird.
begin
for i:= 1 to 1000 do for j:=i to 1000 do {irgendwas} end; MfG Christian |
Re: Summenzeichen in Delphi?
Die explizite Darstellung habe ich gefunden: (n+n^2)/2 :lol: aber die Restzeit lässt sich trozdem nicht genau berechnen. Vielleicht kann mir da jemand weiterhelfen:
Delphi-Quellcode:
Theoretisch müsste das doch so funktioneiren, oder? Praktisch tuts das aber nicht Die Zeit angaben sind absolut ungenau :wall: Liegt das vielleicht daran, das mit TDateTime Millisekunden nicht als Kommazahl dargestellt werden können? Denn dann dürfte hier der Fehler liegen: Differenz/((f+sqr(f))/2)
function TForm1.Restzeit (Startzeit,aktuelleZeit: TDateTime; aktuellesFeld,max: Longint): TDateTime;
var Differenz: TDateTime; //Die bis jetzt benötigte Zeit n: integer; //alle Felder. Die var wird zwar übergeben ist aber so kürzer f: integer; //aktuelles Feld. S.o Ergebnis: TDateTime; //macht die Prozedur nur übersichtlicher begin n := max; //alle Felder; f := aktuellesFeld; Differenz := aktuelleZeit-Startzeit; Ergebnis := Differenz/((f+sqr(f))/2) //Die Zeit die man für eine Schleife braucht wird berechnet Eergebnis := Ergebnis* (((n+sqr(n))/2)-((f+sqr(f))/2)) {Die noch zu berechnenden Schleifen werden bestimmt und anschließend mit der Zeit mulipliziert} Result := Ergebnis; end; Hat jemand ne Idee? MfG Christian |
Re: Summenzeichen in Delphi?
wie wäre es mit einem Blick in die Hilfe?
Zitat:
|
Re: Summenzeichen in Delphi?
hm. Und wie berechne ich das dann?
MfG Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 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