erledigt danke Ergebnis Berechnung long double nicht korrekt
-
Hallo
folgendes Programm liefert nicht das gewünschte Ergebnis#include <iostream>
using namespace std;
int main()
{long double lotto;
lotto=((6.0/45.0)(5.0/44.0)(4.0/43.0)(3.0/42.0)(2.0/41.0)*(1.0/40.0));
cout<<lotto;
cin>>lotto;}
Sollte ausgeben die Wahrscheinlichkeit eines Lotto Sechsers
0.0000000012Ausgabe:
1.22774e-007Bis zur Berechung von 3.0/42.0 stimmt es aber dann nicht mehr,
was mache ich da falsch
long double hat 19 Stellen das Ergebenis weniger, Kann mir bitte geholfen werden.

-
Das Ergebnis stimmt doch...
-
long double hat 19 Stellen das Ergebenis weniger, Kann mir bitte geholfen werden.
Falls du die Anzahl angezeiger Stellen meinst dann guck dir mal std::setprecision(n) in <iomanip> an
-
Um mehr Nachkommstellen auszugeben kannst du ios_base::precision verwenden.
Die Formel für die Wahrscheinlichkeit ist übrigens falsch. Die Wahrscheinlichkeit beträgt nämlich 1/(6 aus 49)
-
EOutOfResources schrieb:
Das Ergebnis stimmt doch...cool aber ich sehe es noch nicht habe erst begonnen zu programmieren
der Taschenrechner liefert 0,0012
der Coumputer
eine für mich noch kryptisches Ergebnis,
weißt du einen guten Link wo ich mir das verständnis für die Ausgabe holen kann?Die Formel für die Wahrscheinlichkeit ist übrigens falsch. Die Wahrscheinlichkeit beträgt nämlich 1/(6 aus 49)[/quote]
Bin Österreicher bei uns ist es 6 aus 45 aber danke
EOutOfResources schrieb:
Das Ergebnis stimmt doch...
-
Das Ergebnis stimmt mit der Rechnung (im Code) überein, wollte ich mit meiner Aussage sagen.
weißt du einen guten Link wo ich mir das verständnis für die Ausgabe holen kann?
Das ist die wissenschaftliche Schreibweise...
-
markuswenczel2 schrieb:
weißt du einen guten Link wo ich mir das verständnis für die Ausgabe holen kann?
Meinst du das:
http://de.wikipedia.org/wiki/Wissenschaftliche_NotationOder das:
http://www.cplusplus.com/reference/iostream/manipulators/?
-
Ich sehe nicht was am Ergebnis des Programs falsch sein soll. Verstehst du du die e^-7 Notation nicht?
Zur Formatierung:
#include <iostream> using namespace std; int main() { long double lotto; lotto=((6.0/45.0)*(5.0/44.0)*(4.0/43.0)*(3.0/42.0)*(2.0/41.0)*(1.0/40.0)); cout.precision(8); cout.setf(ios::fixed,ios::floatfield); cout<<lotto; cin>>lotto; }
-
1.22774e-007bedeutet
1.22774*10[h]-7[/h]0.000000122774
-
markuswenczel schrieb:
...
Sollte ausgeben die Wahrscheinlichkeit eines Lotto Sechsers
0.0000000012Sind n paar Nullen zuviel

1.22774e-007 = 1.22774 * 10-7
-
markuswenczel2 schrieb:
Die Formel für die Wahrscheinlichkeit ist übrigens falsch. Die Wahrscheinlichkeit beträgt nämlich 1/(6 aus 49)
Die ist doch richtig!
1/(6 aus 49) == 1/(49 über 6) = 1/(49!/((49-6)!*6!)) = 1/(49*48*47*46*45*44/(6*5*4*3*2*1)) = 6*5*4*3*2*1/(49*48*47*46*45*44)