#include #include #define MAX_ROLLS 100000 #define HIGH 6 #define LOW 1 int main(int argc, char **argv) { /* Declare variable to hold seconds on clock. */ time_t seconds; /* Get value from system clock and place in seconds variable. */ time(&seconds); /* Convert seconds to a unsigned integer. */ srand((unsigned int) seconds); printf("Average for 1, 1: %d; Average for 1, 2: %d\n", get_avg(1, 1), get_avg(1, 2)); return 0; } int get_avg(int a, int b) { int i, total = 0; for(i = 0; i < MAX_ROLLS; i++) { int n_rolls = do_rolls(a, b); total += n_rolls; } return total / MAX_ROLLS; } int do_rolls(int a, int b) { int prev = 0, die = 0, n = 0; do { prev = die; die = roll(); n++; } while(prev != a && die != b); return n; } int roll() { return rand() % (HIGH - LOW + 1) + LOW; }