| Autor |
Beitrag |
Psycho
      
Beiträge: 21
|
Verfasst: Do 12.12.02 21:02
Ein bischen Mathematik:
Ich möchte Wahrscheinlichkeiten berechnen. Dafür benötige ich Fakultät oder Binomialkoeffizienten.
Bei eigener Programmierung sprengt fakultät(150) sämtliche Zahlbereiche.
Gibt es entsprechede Funktionen? Ich kann sie auch in MATH nicht finden.
Vielen Dank
|
|
BungeeBug
      
Beiträge: 901
|
Verfasst: Do 12.12.02 22:24
ich kann die zwar nicht ganz klar was sagen aber ich denk [url] www.google.de[/url] kann dir helfen ...
MfG BungeeBug
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Do 12.12.02 22:43
Das sprengt nicht nur bei eigener Programmierung jegliche der von Delphi standardmäßig zur Verfügung gestellten Zahlenbereiche. Sie Dir die Zahl mal an:
5713383956445854590478932865261054003189553578601126418254837
5833179829124845398393126574488675311145377107878746854204162
6662501986845044663559491959220665749425920957357789293253572
9044496247240541679072211844543712226967552000000000000000000
0000000000000000000
Also im Bereich von 10^262.
Eine solche Zahl kannst Du nur mit Datentypen bearbeiten, die für solche Giganten entwprfen wurden. Ich hatte mal einen Datentypen BigInteger, ich weiß aber nicht mehr woher. Man findet sowas aber ziemlich schnell.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Do 12.12.02 22:49
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Do 12.12.02 22:55
Vielen Dank,
Ich werde den Artikel morgen einmal genau durcharbeiten.
Jeder Taschenrechner hat die Funtionen und berechnet die Werte vermutlich über irgendeine Reihe oder rekursiv. An so etwas hatte ich gedacht bzw. gehofft.
Also 10 Bit auf die Dankebank
Psycho
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 13.12.02 14:09
Dein TR berechnet Dir 150! ? Da hätte ich dann aber gerne mal die Modellnummer, der kann dann bestimmt auch einiges an Nachkommastellen speichern, und das könnte ich ab und zu mal gebrauchen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Fr 13.12.02 14:36
Hallo Peter, das ist lustig oder so!
Nein, mein Taschenrechner berechnet nit 150 ! aber den Binomialkoeffizienten "n über k" auch für große Werte.
Da n über k = n! / (k!*n-k)! ist, brauche ich die Fakultäten oder eine Reihe, die den Binomialkoeffizienten ohne Fakultäts-zwischenwerte berechnet. alles klar?
Gruss Psycho
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Fr 13.12.02 14:57
Hi!
Gibt es nicht gerade aus diesem Grund (große n) die Annäherung durch die Poisson-Verteilung?
Gruß,
Markus
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Fr 13.12.02 15:02
Stimmt, aber ich möchte eine (graphische) Simmulation zur Verteilungsfunktion für wachsende n entwerfen, mehr den Weg entwickeln, als die Endverteilung.
Ich bin auch schon ein Stückchen weiter, weil ich bei der Berechnung des Binomialkoeffizienten auf die Fakultät verzichtet habe.
Gruss Psycho
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 13.12.02 15:11
n über k kann aber auch geschrieben werden als:
[n*(n-1)*(n-2)*...*(n-k+1)]/[1*2*3*...*k]
Jetzt ist es ungünstig, erst den Zähler und dann den Nenner auszurechnen. Ich würde es so machen, dass Du zuerst n/k berechnest, dann mit (n-1) / (k-1) multiplizierst usw.
Das sieht dann also so aus:
[n/k]*[(n-1)/(k-1)]*[(n-2)/(k-2)]*...*[(n-k+1)/1]
Jede der Zahlen dürfte relativ klein sein und den Rechner nicht überfordern.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Fr 13.12.02 15:23
Hallo!
Nur zur Information: 100 000 über 1760 = 3,15051789454682 E 3843
Bisheriger persönlicher Rekord unter Delphi
Gruss Psycho
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Fr 13.12.02 15:26
Hallo Peter, ich glaube, da ist ein Fehler in Deiner Rechnung:
der Nenner lautet: 1*2*...* (n-k)
Gruss Psycho
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 13.12.02 15:50
Erstmal prinzipiell: ich mache keine Fehler
Und speziell hier: Ich habe die ausgeschriebenen Zähler und Nenner aus meiner Formelsammlung abgeschrieben. Und wenn Du Dir die Formel, die Du gepostet hast (die mit den Fakultäten) anschaust, und die Zahlen, die in n! drin sind und die, die in dem (n-k)! drin sind kürzt, wirst Du sehen, dass genau das stehen bleibt, was ich gepostet habe.
MfG,
Peter
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Psycho 
      
Beiträge: 21
|
Verfasst: Fr 13.12.02 15:55
Hast Recht!
Ich habe den anderen Faktor ( k! ) gekürzt. Dann sieht es anders aus, ist aber das gleiche
Gruss Psycho
-10 Bit für dumme Bemerkung *schäm*
|
|