Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#44

Re: n über k - berechnen!?

  Alt 17. Jan 2010, 22:48
Zitat von rollstuhlfahrer:
ich hab jetzt mal noch abschließend einen Speedtest über alle hier vorgestellten Funktionen gemacht. Als Basiswerte gelten für n=1754 und für k=600. Der Test wurde auf einer VM gemacht. Prozessor des Hosts: 1x AMD Turion x64 (2,0 GHz). Delphi 7
Hallo Bernhard,
Wenn ich deine Funktion NueberK aus #36 mit den Werten n=1754 und k=600 aufrufe dann wirft die eine Exception.
Insofern bin ich nicht in der Lage deine Messergebnisse qualifiziert zu kommentieren.
Die Exception wird in der Funktion Fakultaet2 ausgelöst, wobei mir nicht klar ist, was diese Funktion überhaupt machen soll.
Die Funktion hat die Parameter start und ende und es gibt genau 3 mögliche Resultate:
1) Wenn ende > start, dann wirft sie eine Exception (dabei sollte das der Normalfall sein)
2) Wenn ende < start, dann ist das Ergebnis 1
3) Wenn ende = start, dann ist das Ergebnis = start
Was soll das ?

Delphi-Quellcode:
function fakultaet2(start, ende: integer): extended;
var
  i: integer;
begin
  if ende > start then
    raise EMathError.Create('Start kleiner als Ende');
  Result := 1;
  for i := start to ende do
  begin
    Result := Result * i;
  end;
end;

Zur Performance der Routinen #33 und #37 sei gesagt, daß die nicht auf Performance optimiert sind, sondern auf Erhöhung des Rechenbereiches.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat