Esercizio C++: Simulare il lancio di tre dadi in C++
Esercizio
Simulare 100 lanci di tre dadi in C++ e stampare a video il contatore della somma dei tre valori estratti ogni volta. Ad esempio se escono i numeri 2 3 4 dovrò aumentare di uno il contatore relativo alla somma 9 e così via.
EXTRA: Disegnare il diagramma delle frequenze relativo
Soluzione
#include <random>
#include <iostream>
int main()
{
std::random_device rd;
std::mt19937_64 gen(rd());
std::uniform_int_distribution<unsigned long long> dis;
int somme[16] = {0};
for (int n=0; n<1000; ++n) {
auto dado1 = dis(gen) % 6 +1;
auto dado2 = dis(gen) % 6 +1;
auto dado3 = dis(gen) % 6 +1;
auto somma_dadi = dado1 + dado2 + dado3;
somme[somma_dadi-3]++;
}
/* stampo le frequenze di ogni somma */
for (auto i = 0; i < 16;i++) {
std::cout << "["<< i+3 <<"] = "<< somme[i] << std::endl;
}
/* EXTRA: disegnare l'istogramma delle frequenze */
int max_value = somme[0];
for (auto i = 0; i < 16;i++)
if (somme[i] > max_value)
max_value = somme[i];
for (auto i = 0; i < 16;i++) {
std::cout << "["<< i+3 <<"] = " << int((somme[i]/float(max_value))*40);
for(auto j = 0;j<int((somme[i]/float(max_value))*40);j++)
std::cout << "*";
std::cout << std::endl;
}
return 0;
}
Esercizi sulle stringhe in C++
Esercizi sulle funzioni in C++
Esercizi sulle matrici / array bidimensionali in C++
Matematico, informatico.