From 7a73162607544204032aa66cce755daf21edebda Mon Sep 17 00:00:00 2001 From: Matt Strapp Date: Tue, 24 May 2022 11:18:46 -0500 Subject: Graduate Signed-off-by: Matt Strapp --- ee1301/wk3/hw3_directory/strap012_HW3A.cpp | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 ee1301/wk3/hw3_directory/strap012_HW3A.cpp (limited to 'ee1301/wk3/hw3_directory/strap012_HW3A.cpp') diff --git a/ee1301/wk3/hw3_directory/strap012_HW3A.cpp b/ee1301/wk3/hw3_directory/strap012_HW3A.cpp new file mode 100644 index 0000000..42aae10 --- /dev/null +++ b/ee1301/wk3/hw3_directory/strap012_HW3A.cpp @@ -0,0 +1,62 @@ +/* +27 Feb 2019 +Matthew Strapp +5449340 +EE1301 +Spring 2019 +Homework 3A +One-armed Bandit Simulator +*/ + +#include +#include +#include +#include + +int spin_the_wheels(int d, int w); + +int main () { + srand(time(NULL)); + int w, d, winCount, winTest; + for (w=3; w<=6; w++) { + winCount=0; + for (d=9; d<=27; d++) { + winCount=0; + for (long n=1000000; n>0; n--) { //The simulation is always done 1,000,000 times + winTest = spin_the_wheels(d, w); + winCount+=winTest; + } + if (w==6) { + std::cout << std::scientific; + } + std::cout << "w=" << w << ", d=" << d + << ": Simulated probability = m/n = " << (winCount / 1000000.0) * 100.0 << "%. " + << "Theoretical probability = " << (d / (pow(d, w))) * 100 << "%." << std::endl; + d+=2; + } + } +} + +// Function: spin_the_wheels +// --------------------------- +// Simulates the one-armed bandit from the previous HW +// d: the number of options on the spinner +// w: the number of spinners +// returns: Either 1 for win or 0 for loss + +int spin_the_wheels(int d, int w) { + int spinOG=0, spinNew=0, win=0; + spinOG = ( (rand() % d) + 1); //Original spin is always the same + w-=1; //The first wheel was spun as spinOG + for (int i=0; i