-
Notifications
You must be signed in to change notification settings - Fork 0
/
zesendertigen.c
96 lines (89 loc) · 2.46 KB
/
zesendertigen.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include "zesendertigen.h"
void throwDice(int no_dice, int *thrown_dice){
for (int i=0; i < no_dice; i++){
thrown_dice[i] = rand() % 6 + 1;
}
}
void odds36(double tries){
double odds = 0;
int total;
int no_dice;
int sixes;
for (int try = 0; try < tries; try++){
bool running = true;
no_dice = 6;
total = 0;
while (running==true){
sixes = 0;
int thrown_dice[no_dice];
throwDice(no_dice, thrown_dice);
int loop_dice = no_dice;
for (int i=0; i < loop_dice; i++){
if (thrown_dice[i] == 6){
sixes++;
no_dice--;
total += 6;
}
}
if (sixes == 0){
running = false;
}
}
if (total == 36){
odds++;
}
}
printf("The odds are:%lf\n",odds/tries);
}
void averageThrow(int min_number, double tries){
int no_dice;
int total;
double average_throw = 0;
for (int try = 0; try < tries; try++){
bool running = true;
no_dice = 6;
total = 0;
while (running==true){
int thrown_dice[no_dice];
throwDice(no_dice, thrown_dice);
int loop_dice = no_dice;
bool die_taken = false;
int max_die = 0;
for (int i=0; i < loop_dice; i++){
if (thrown_dice[i] >= min_number){
no_dice--;
total += thrown_dice[i];
die_taken = true;
}
if (thrown_dice[i] > max_die){
max_die = thrown_dice[i];
}
}
if (die_taken==false){
total += max_die;
no_dice--;
}
if (no_dice == 0){
running = false;
}
}
average_throw += total;
}
printf("When taking out the minimum number of %i\n",min_number);
printf("The average total is: %lf\n", average_throw/tries);
}
int main(){
srand(time(0));
double tries = 1000000;
clock_t begin = clock();
odds36(tries);
averageThrow(6,tries);
averageThrow(5,tries);
averageThrow(4,tries);
averageThrow(3,tries);
averageThrow(2,tries);
averageThrow(1,tries);
clock_t end = clock();
double time_spend = (double)(end-begin)/CLOCKS_PER_SEC;
printf("Time spend is: %lf\n", time_spend);
}