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 Zufallszahlengenerator 😉

    Gruß 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 🙂


Anmelden zum Antworten