Würfelspiel



  • Hallo, ich habe für die Uni eine Übung zu programmieren. Leider habe ich bei dieser keine Ahnung wie ich da Anfangen soll. Vielleicht könnt ihr mir Helfen. Bitte Danke.
    Die Aufgabe lautet:

    Lassen Sie Spieler A gegen Spieler B wurfeln. A hat 2 Wuerfel (d.h. 2 Aufrufe des
    Wuerfelgenerators), B nur einen. A macht einen Gewinn von ¨ g = 1 , wenn die Summe
    seiner Augenzahlen echt groeßer als die Augenzahl von B ist, ansonsten einen Verlust
    von g = −5 . Wiederholen Sie das Wuerfelspiel nun eine Million Mal und werten Sie ¨
    die Gewinn-Werte von A mit SimpleStat statistisch aus.

    Lassen Sie Spieler A gegen Spieler B wurfeln. A hat 2 W ¨ urfel (d.h. 2 Aufrufe des ¨
    Wurfelgenerators), B nur einen. A macht einen Gewinn von ¨ g = 1 , wenn die Summe
    seiner Augenzahlen echt gr¨oßer als die Augenzahl von B ist, ansonsten einen Verlust
    von g = −5 . Wiederholen Sie das Wurfelspiel nun eine Million Mal und werten Sie ¨
    die Gewinn-Werte von A mit SimpleStat statistisch aus.

    SimpleStat:
    #ifndef SIMPLESTAT_H
    #define SIMPLESTAT_H

    #include <iostream>
    #include <string>
    #include <cmath>

    class SimpleStat {
    public:
    explicit SimpleStat(const std::string& t) // ctor, keine Typumwandlung
    : title{t} {}

    void operator+=(double x)
    {   ++n;
        sum += x;
        sum2 += x*x;
        if (n == 1)
            min_val = max_val = x;
        else {
            if (x < min_val)
                min_val = x;
            if (x > max_val)
                max_val = x;
        }
    }
    
    void print(std::ostream& os) const
    {
        os << "Statistische Auswertung: " << title << '\n';
        os << "\tAnzahl der Stichproben: " << n << '\n';
        if (n > 0) {
            auto mw = sum/n;
            os << "\tMinimum der Daten:      " << min_val << '\n';
            os << "\tMaximum der Daten:      " << max_val << '\n'; 
            os << "\tMittelwert der Daten:   " << mw << '\n';
            if (n > 1) {
                auto sa = (sum2 - n*mw*mw)/(n-1);
                os << "\tStandardabweichung:     " << sa << '\n';
                os << "\tStreuung:               " << sqrt(sa) << '\n';
            }
        }
    }
    

    private:
    std::string title;
    int n = 0; // Anzahl der Stichproben
    double sum = 0.; // Summe der Stichproben
    double sum2 = 0.; // Summe der Stichproben-Quadrate
    double min_val = 0.; // Minimum der Stichproben
    double max_val = 0.; // Maximum der Stichproben }
    };

    inline std::ostream& operator<<(std::ostream& os, const SimpleStat& s)
    { s.print(os); return os; }

    #endif // #ifndef SIMPLESTAT_H


  • Mod

    Fein. Was ist deine Frage?



  • Wie generiere ich den Würfelgenerator und lasse es dann durchlaufen?





  • @student96 sagte in Würfelspiel:

    Wie generiere ich den Würfelgenerator und lasse es dann durchlaufen?

    Indem du dir überlegst wie man das Schritt für Schritt macht, und das dann Schritt für Schritt in ein C++ Programm übersetzt. Dieses Programm gibst du in der IDE deiner Wahl ein, übersetzt es, und startest es dann.

    Eine detailiertere Antwort wirst du von mir auf diese Frage nicht bekommen, denn das liefe darauf hinaus dir deine Hausaufgaben zu machen.
    Wenn du konkrete Fragen zu einem speziellen Problem hast, kannst du diese gerne stellen und wirst dann vermutlich auch brauchbare Antworten bekommen.


Log in to reply