aboutsummaryrefslogtreecommitdiffstats
path: root/ee1301/wk3/hw3_directory/strap012_HW3A.cpp
blob: 8d752948b38a0067fde449e49f7767cbc4ec02c0 (plain) (blame)
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
/*
27 Feb 2019
Matthew Strapp
5449340
EE1301
Spring 2019
Homework 3A
One-armed Bandit Simulator
*/

#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
#include <time.h>
using namespace std;

int spin_the_wheel(int d, int w) {
  int spinOG=0, spinNew=0, win=0;
  //spinOG = ( (rand() % d) + 1);
  for (int i=0; i<w; i++) {
    spinOG = ( (rand() % d) + 1);
    spinNew = ( (rand() % d) + 1);
    if (spinOG==spinNew) { 
      win++;
    }
  }
  if (win==w) {
    return 1;
  } else {
    return 0;
  }
}

int main () {
  srand(10000); 
  int w, d, m, test;
  for (w=3; w<=6; w++) {
    m=0;
    for (d=9; d<=27; d++) {
      m=0;
      for (long n=1000000; n>0; n--) {
        int test = spin_the_wheel(d, w);
        m+=test;
      }
      double win=m;
      cout << fixed << setprecision(5)
           << "w=" << w << ", d=" << d
           << ": Simulated probability = m/n = " << (win / 1000000.0) * 100.0 << "%. "
           << "Theoretical probability = " << (d / (pow(d, w))) * 100 << "%." << endl;
      d+=2;
    }
  }
}