/* FILE: dado.cpp last change: 12-Mar-2001 * Simula il lancio ripetuto di un dado. * Alla fine stampa quante volte ciascuna faccia e` stata ottenuta. */ #include #include #define SIZE 6 // Il nostro dado ha sei facce main() { unsigned int seme; // Il seme per il generatore di numeri casuali cout << "Dammi il seme per il generatore di numeri casuali: "; cin >> seme; srand(seme); // Inizializza il generatore di numeri pseudocasuali int nlanci; // Il numero dei lanci che dovremo simulare cout << "Dammi il numero di lanci da effettuare: "; cin >> nlanci; int faccia[SIZE]; // Array per memorizzare quante volte ciascuna faccia // e` stata ottenuta int i; for (i = 0; i < SIZE; i++) // Inizializziamo a 0 l'array faccia[i] = 0; while (nlanci--) { // rand() ritorna un intero compreso fra 0 e la costante RAND_MAX. // Riportiamo il valore restituito da rand() nell'intervallo 0..(SIZE - 1) // Per una giustificazione alla manipolazione seguente vedere lo Stroustrup) int risultato = (int) (SIZE * (double(rand()) / RAND_MAX) ); // Incrementiamo di 1 il contatore per la faccia corrispondente. faccia[risultato]++; } for (i = 0; i < SIZE; i++) // Stampiamo i valori dell'array cout << "La faccia " << (i + 1) << " e` stata ottenuta " << faccia[i] << " volte" << endl; }