#include #include // Fonction simulant le tirage aleatoire d'un entier entre 1 et nbMax. // Le fonctionnement de cette fonction sera expliqué en cours int random_1_to_n(int const nbMax) { static std::random_device rd; static std::default_random_engine engine(rd()); std::uniform_int_distribution<> distribution(1, nbSides); return distribution(engine); } // Fonction simulant le tirage aleatoire d'un entier entre 1 et 6. // Comme on le verra en cours, la declaration en static de distribution // permet d'etre un peu plus performant que la version non static. // Contrepartie : on ne peut pas changer les bornes de la distribution. int random_1_to_6() { static std::random_device rd; static std::default_random_engine engine(rd()); static std::uniform_int_distribution<> distribution(1, 6); return distribution(engine); } int main() { auto sixCount = 0; auto const throwCount = 10000; for (int i = 0; i < throwCount; ++i) { if (d(20) == 6) { sixCount++; } } std::cout << sixCount << " dice were equal to 6 when throwing " << throwCount << " dices with " << 20 << " faces." << std::endl; std::cout << "Ratio: " << static_cast(sixCount) / throwCount << std::endl; sixCount = 0; for (int i = 0; i < throwCount; ++i) { if (d6() == 6) { sixCount++; } } std::cout << sixCount << " dice were equal to 6 when throwing " << throwCount << " dices with " << 6 << " faces." << std::endl; std::cout << "Ratio: " << static_cast(sixCount) / throwCount << std::endl; }