AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

n über k - berechnen!?

Ein Thema von Plague · begonnen am 16. Jan 2005 · letzter Beitrag vom 21. Jan 2010
Antwort Antwort
Seite 1 von 7  1 23     Letzte » 
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

n über k - berechnen!?

  Alt 16. Jan 2005, 21:14
Hallo wie kann ich das mathematische "n über k" berechnen?
Kennt da jemand den Quelltext?

Gruß
Thomas
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:22
n über k = n! / (k! (n-k)!)

das ist leicht zu programmieren, oder?
  Mit Zitat antworten Zitat
Kryoko
(Gast)

n/a Beiträge
 
#3

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:24
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;
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#4

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:40
jungs, denkt doch mal ein bisschen nach!

schon 21! sprengt mit 5,09*10^19 die int64-Grenzen (2^63 = 9,22*10^18) !!
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Kryoko
(Gast)

n/a Beiträge
 
#5

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:45
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.

Oder alles mit Extended FLoats geschrieben...
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#6

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:47
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
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 21:54
Delphi-Quellcode:
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;
bzw.

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;
Dani H.
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#8

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 22:13
womit aber das Problem mit den zu großen Zahlen bestehen bleibt.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 22:23
Die Grenze des Berechenbaren liegt aber viel höher als bei Int46. Für die Praxis reicht es bestimmt.
Dani H.
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#10

Re: n über k - berechnen!?

  Alt 16. Jan 2005, 22:42
eben nicht!

die Standardaufgaben zu Bernoulliketten arbeiten mit n=10 bis n=100. Und ab 21 ist int64 zu klein!
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf