Wahrscheinlichkeit einer Zahl beim Würfeln
-
Hi,
habe gesehen dass manche User hier einfach mal ihre Proggs und Spiele presentieren, dann wollt ich auch mal mein neuestes kurzes Prog zeigen.
Bin aber noch nich so fortgeschritten^^
also das Programm würfelt so oft wie gewünscht, und Zählt dann wie oft eine Zahl vorkam, und die Wahrscheinlichkeit in %.
Also wenn man den Computer ganz oft Würfeln lässt, soll die Wahrscheinlichkeit für eine Zahl möglichst nah an 16.666666666666666... kommen.
(100 / 6)
Also hier der code:#include <iostream> #include <conio.h> #include <windows.h> #include <stdlib.h> #include <fstream> #include <stdio.h> using namespace std; void gotoxy(short x, short y) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X=x-1; pos.Y=y-1; SetConsoleCursorPosition(hCon, pos); } int main() { float zahl1 = 0, zahl2 = 0, zahl3 = 0, zahl4 = 0, zahl5 = 0, zahl6 = 0, kontrolle; float anzahl_gefuerfelt; float done, einss; cout << "Wie oft soll gewuerfelt werden?" << endl; cin >> anzahl_gefuerfelt; einss = 100/anzahl_gefuerfelt; float augenzahl; int i; for (i = 1; i<=anzahl_gefuerfelt; i++) { augenzahl = rand() % 6 + 1; if (augenzahl == 1) { zahl1++; } if (augenzahl == 2) { zahl2++; } if (augenzahl == 3) { zahl3++; } if (augenzahl == 4) { zahl4++; } if (augenzahl == 5) { zahl5++; } if (augenzahl == 6) { zahl6++; } //gotoxy (5,10); done = einss * i; gotoxy (1,4); cout << done << "% done " << endl; } {//gibt aus wie oft eine zahl gewürfelt wurde cout << "Die 1 wurde " << zahl1 << " mal gewuerfelt" << endl; cout << "Die 2 wurde " << zahl2 << " mal gewuerfelt"<< endl; cout << "Die 3 wurde " << zahl3 << " mal gewuerfelt"<< endl; cout << "Die 4 wurde " << zahl4 << " mal gewuerfelt"<< endl; cout << "Die 5 wurde " << zahl5 << " mal gewuerfelt"<< endl; cout << "Die 6 wurde " << zahl6 << " mal gewuerfelt"<< endl; } kontrolle = zahl1 + zahl2 + zahl3 + zahl4 + zahl5 + zahl6; cout << "Insgesamt " << kontrolle << endl; if (kontrolle != anzahl_gefuerfelt) { cout << "Es liegt ein Fehler vor" << endl; } { // berechnet wieviel % jeweils eine zahl gewürfelt wurfe float a1, a2, a3, a4, a5, a6; //prozent a, b, c.... float kontolle_prozent; float eins = 100/anzahl_gefuerfelt; //cout << "Wenn eine Zahl einmal gewuerfelt wurde, wurde sie zu = " << eins << endl; // cout << "% gewuerfelt" << endl; a1 = eins * zahl1; a2 = eins * zahl2; a3 = eins * zahl3; a4 = eins * zahl4; a5 = eins * zahl5; a6 = eins * zahl6; cout << "1 = " << a1 << " %" << endl; cout << "2 = " << a2 << " %" << endl; cout << "3 = " << a3 << " %" << endl; cout << "4 = " << a4 << " %" << endl; cout << "5 = " << a5 << " %" << endl; cout << "6 = " << a6 << " %" << endl; kontolle_prozent = a1 + a2 + a3 + a4 + a5 + a6; cout << "Insgesamt = " << kontolle_prozent << "%" << endl; } string a = "Copyright by Cnomecoder"; int c = 22; int b; for (b=0; b<=c; b++) { cout << a[b]; Sleep(100); } getch(); return 0; }
Eine Sache die mir unschlüssig ist: Immer wenn ich den PC 120 mal qürfeln lasse, kommt die 1 20 mal vor, und die 2 10 mal, und so weiter...
wie kann ich die vorherigen werte löschen, sodass immer neue Zahlen rauskommen=
Hoffe ihr habt das Problem verstanden...
mfg
-
Inkludire mal die time.h und schreibe ganz am Anfang deiner main() mal
srand( time( 0 ) ); ist ne Art ZufallszahlengeneratorGruß Tobi.
-
hey super danke!!!
funzt bestens.
-
Würdest du arrays anstelle von den ganzen zahlx und ax nehmen, wäre das Programm bestimmt übersichtlicher.
-
-
thx very nice