Einzelnen Beitrag anzeigen

Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#56

Re: n über k - berechnen!?

  Alt 18. Jan 2010, 18:09
So, nun nochmal. Ich scheine mich wohl nicht nur während irgendwelchen Mathearbeiten grundsätzlich irgendwo zu verrechnen. Scheint wohl irgendwo erblich veranlagt zu sein. Zu dem viel zu hohen Zwischenergebnis: falsch Optimiert. Ich hab das falsche gekürzt, weil ich dachte, dass sich das andere irgendwie anders errechnet. War aber nicht so.
Zu dem total falschen Ergebnis: 7! / 6! = 7 und nicht 42, was meine Routine fakultaet2 errechnet hat.

Delphi-Quellcode:
function fakultaet2(start, ende: integer): extended;
var
  i: integer;
begin
  Result := start + 1;
  for i := (start + 2) to ende do
  begin
    Result := Result * i;
  end;
end;

function fakultaet(N: integer): Extended;
var i: Integer;
begin
  Result := 1;
  for i := 1 to trunc(N) do
    Result := Result * i
end;

function nueberk(n, k: integer): Extended;
begin
  // alte Funktion
  Result := fakultaet(n) / (fakultaet(n - k) * fakultaet(k));
  // die jetzt hoffentlich richtige
  Result := fakultaet2(n - k, n) / (fakultaet(k));
end;
Zu dem "was soll das?": ja, errare humanus est. Ich habe insgesamt jetzt 3 Fehler gemacht. Wenn noch einer einen findet, sind es mehr. Fehler 1: Größer/Kleiner habe ich schon in der Grundschule mir nur per Merkregel merken können. In der 6. Klasse habe ich eine andere Merkregel gelernt, die ich jetzt immernoch verwende. Fehler 2 war die falsche Fakultät und Fehler 3 war das Nicht-Nachrechnen des Ergebnisses.
Das zu meinen Fehlern. Wie viele machst du?

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat