n über k - berechnen!?
Hallo wie kann ich das mathematische "n über k" berechnen?
Kennt da jemand den Quelltext? Gruß Thomas |
Re: n über k - berechnen!?
n über k = n! / (k! (n-k)!)
das ist leicht zu programmieren, oder? |
Re: n über k - berechnen!?
Hi !
Wenn ich mich nicht irre meinst du mit "n über k" die Binomialkoeffizienten (irre ich mich ??) Berechnet werden die mit n! / ((n - k)! * k!)
Delphi-Quellcode:
function fakultaet(N: Int64): Int64;
var i: Integer; begin Result := 1; for i := 1 to N do Result := Result * i end; function nueberk(n, k: Integer): Int64; begin Result := fakultaet(n) / (fakultaet(n - k) * fakultaet(k)) end; |
Re: n über k - berechnen!?
jungs, denkt doch mal ein bisschen nach!
schon 21! sprengt mit 5,09*10^19 die int64-Grenzen (2^63 = 9,22*10^18) !! |
Re: n über k - berechnen!?
ist mir auch klar...
der Quellcode sollte niemals 100% funktionstüchtig sein...sonst hät' ich da noch was mit kürzen etc. geschrieben. er wollte nur Quellcode. :evil: Oder alles mit Extended FLoats geschrieben... |
Re: n über k - berechnen!?
hm, da hast du wohl Recht ... aber gerade das ist doch das Problem an der Sache, so ist die Lösung doch witzlos, da sie in 50% der Fälle nicht geeignt ist :zwinker:
|
Re: n über k - berechnen!?
Delphi-Quellcode:
bzw.
function Binomial(n, k: Integer): Extended;
begin If (k < 0) or (n < 0) then raise {Fantasie-Excpetion}; If (k = 0) or (k=n) then Result := 1 else Result := n/k * Binomial(n-1, k-1); end;
Delphi-Quellcode:
function Binomial(n, k: Cardinal): Extended;
begin If (k = 0) or (k=n) then Result := 1 else Result := n/k * Binomial(n-1, k-1); end; |
Re: n über k - berechnen!?
womit aber das Problem mit den zu großen Zahlen bestehen bleibt.
|
Re: n über k - berechnen!?
Die Grenze des Berechenbaren liegt aber viel höher als bei Int46. Für die Praxis reicht es bestimmt.
|
Re: n über k - berechnen!?
eben nicht!
die Standardaufgaben zu Bernoulliketten arbeiten mit n=10 bis n=100. Und ab 21 ist int64 zu klein! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz