I want to begin our coding adventure with something simple yet useful in many areas. I think that has to be using Monte Carlo simulation to solve a problem, especially that for which we do not know the exact solution.

In essence, there are 2 stages for implementing a Monte Carlo simulation:

- Input stage: Define a set of possible inputs for the problem. Randomly generate inputs from this set. We can do this one at a time, or altogether.
- Output stage: For each generated input, find the output by following the problem description. I will refer to this “give me an input and I’ll give you an output” as a simulation. Combine the outputs to arrive at some meaningful result.

The benefit of a computer program shines in both stages. Our computer can create many inputs and evaluate their outputs much faster than we can.

Over the next few posts, we will examine how we can apply Monte Carlo simulation to solve problems in probability and integration. Whenever possible, we will consider the exact solution and see how good our approximate solution is.