#include #include #include #include #include using namespace std; constexpr const int HEAD_PROB { 52 }; class Coin { public: Coin(double nominal, double sale) : nominal{nominal}, sale{sale} {} static string flip() { static random_device rnd; static uniform_int_distribution<> dist{0,1}; if ( dist(rnd) ) return "krona"; return "klave"; } double sale_value() const { return sale; } double nominal_value() const { return nominal; } private: double nominal; double sale; }; double toss_coins(Coin const & coin) { random_device rnd; uniform_int_distribution<> dist {0,100}; double win {}; for ( int toss {}; toss < 1'000'000; ++toss ) { int factor {1}; if ( coin.flip() == "klave" && dist(rnd) > HEAD_PROB ) { factor = -1; } win += factor * coin.nominal_value(); } return win; } int main() { double nom, sale; cout << "Mata in myntets nominella värde: "; cin >> nom; cout << "Mata in myntets försäljningsvärde: "; cin >> sale; Coin c { nom, sale}; double val { toss_coins(c) }; cout << "\nProfessorn vinner " << fixed << setprecision(2) << val << "kr\n"; }